vba在运行的时候显示进度条_VBA代码解决方案的第86讲内容:VBA代码的优化篇

本文介绍了VBA代码解决方案的第86讲内容,聚焦VBA代码优化,通过对比VBA累加方法和工作表函数Sum在求和计算上的运行时间,揭示调用工作表函数能显著提升运行效率。代码示例展示了两种方法,并提供了运行时间的可视化展示。此外,文章强调了在优化代码时平衡效率和视觉效果的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

15a62c2f504d86e7d2ecf2b9222d5044.png

大家好,我们今日继续讲解VBA代码解决方案的第86讲内容:VBA代码的优化篇,使用工作表函数要比代码计算快很多。在代码的优化的上一篇中我讲到了关闭屏幕更新可以有效的节约程序的运行时间,那么是不不是必须要关闭屏幕更新以得到更好的运行效率呢?根据我的经验不是这样的。在有的时候我们还是需要看到屏幕的更新而获得一种动态的程序运行效果的,也就是说我们在获得节约时间的时候往往会牺牲视觉效果。这就要看看程序员的选择和好恶了。今日我们讲在VBA中使用工作表函数比仅仅使用VBA代码的运行时间的比较。

如下面的代码所示。

Sub MyShFunction()

Dim i

Dim t As Date

Dim t1 As String

Dim t2 As String

Range("B1:B4").ClearContents

Application.ScreenUpdating = False

t = Timer

For i = 1 To 60000

Sheets("sheet10").Cells(1, 2) = Sheets("sheet10").Cells(1, 2) + Sheets("sheet10").Cells(i, 1)

Next

t1 = Timer - t

t = Timer

Sheets("sheet10").Cells(2, 2) = Application.WorksheetFunction.Sum(Sheets("sheet10").Range("A1:A60000"))

t2 = Timer - t

Application.ScreenUpdating = True

Sheets("sheet10").Cells(3, 2) = Format(t1, "0.00000")

Sheets("sheet10").Cells(4, 2) = Format(t2, "0.00000")

MsgBox "第一次运行时间:" & Format(t1, "0.00000") & "秒" _

& Chr(13) & "第二次运行时间:" & Format(t2, "0.00000") & "秒"

End Sub

代码解析:

MyShFunction过程分别使用VBA代码和调用工作表Sum函数对单元格区域进行求和计算,最后使用消息显示运行时间。

第9行到第11行代码使用VBA的累加方法计算单元格A1:A60000的和。

第14行代码调用工作表Sum函数计算单元格A1:A60000的和。

运行ShFunction过程,消息框显示两种方法的运行时间,可以看出调用工作表函数进行计算的运行时间要远远小于使用累加方法运行的时间,

代码窗口:

2387fafa6b948cdad0fa3c497c9a638c.png

864a01453daa126917b7c3918b752c1c.png

今日内容回向:

1 本讲讲的第二种优化代码的方案是什么?

2 工作表函数如何引用呢?

欢迎到我的自媒体平台沟通交流:个人微信号“NZ9668”、头条号“VBA专家”、百家号“VBA与GO语言”、微信公众号“NZ_9668”、社群“VBA学习交流群”。

这一系列文章是根据我多年的工作经验编写的,也是一直在利用的工具,非常方便好用。现在分享出来,希望能对同样在职场打拼的朋友有些许的帮助,使你的工作更加高效、流畅。朋友们有问题请随时提出来,我们一起探讨学习。对数据分析有需要的公司、组织或个人可以直接联系我,及时为你提供专业的定制技术支持。

工作不是一切。工作是每个人安身立命、成长发展的基础。但你要知道工作是永远也做不完的,时间会抹去很多问题。多关注自己、家人和朋友,这些才是我们生活中更为重要的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值