窗体顶端
Excel VBA程序设计中提高效率的一些建议
首先,效率的提高应该建立在正确的解决方案和正确的算法的基础上,前者保证了结果的正确性,后者保证了效率。通过改进算法和思路得到的运行效率的提高是以下优化方法的十倍百倍,因此,优化首先应该考虑的算法,其次才是本文以下提到的方法。要特别指出,效率的优化必须是针对关键代码的优化,对于一些在程序执行过程中,只执行很少次数的代码,没有必要牺牲可读性而进行优化。在此基础上,可以通过注意以下一些问题,提高程序的运行效率。
1. 尽量使用Excel的内置函数
应该尽量使用Excel的内置函数,使用Excel内置函数不仅可以提高运行效率,而且可以节省代码数量。对于Excel内置函数可以通过以下方式访问:
()
(myRange)
例如以下求平均值的例子,使用的VBA代码如下:
For Each c In Worksheet(1).Range(″A1:A1000″)
TotalValue = TotalValue +
Next
AverageValue = TotalValue / _
Worksheet(1).Range(″A1:A1000″).
而下面代码程序比上面例子快得多:
AverageValue = _
(Worksheets(1).Range(“A1:A1000”))
其它函数如Count,Counta,Countif,Match,Lookup等等,都能代替相同功能的VBA程序代码,提高程序的运行速度。
2. 尽量减少使用对象引用
在VBA代码中,应该尽量减少使用对象引用,尤其在循环中。每一个Excel对象的属性、接口的一个或多个调用,调用都是比较费时的,因此,减少使用对象引用能加快VBA代码的运行。可以通过以下途径改进效率:
(1)使用With语句
例如以下语句,可以通过替换为With语句,提高运行效率:
(″A1:A1000″). = “Arial”
(″A1:A1000″). = ″Bold″
对应的With语句:
With (″A1:A1000″).Font
.Name = ″Arial″
.FontStyle = ″Bold″
End With
(2)使用对象变量
如果一个对象引用被多次使用,则可以通过定义一个局部变量,将此对象用Set 设置为对象变量,以减少对对象的访问。如:
(″A1″).Value = 100
(″A2″).Value = 200
则以下代码要比上面的要快:
Dim objSheet As Object
Set objSheet = ActiveSheet
(″A1″).Value = 100
(″A2″).Value = 200
(3)减少
Excel VBA程序设计中提高效率的一些建议 来自淘豆网m.daumloan.com转载请标明出处.