excel vba超慢怎么提速?

如题所述

对象,包括所有VBA中使用的对象。你的每次调用都会耗费比调用数字多N倍的资源。下面看2段代码,要完成的任务都是向A1:A10000中填充序号。

代码1:

Sub 运算1()
t = Timer
For x = 1 To 10000
Range("a" & x) = x
Next x
MsgBox Timer - t
End Sub

分析:上面这段代码,在循环中调用Range对象,共调用了10000次。运算时间:0.98秒

Sub 运算2()
Dim arr(1 To 10000, 1 To 1)
t = Timer
For x = 1 To 10000
arr(x, 1) = x
Next x
Range("a1:a10000") = arr
MsgBox Timer - t
End Sub

分析:本段代码中,先声明一个10000行1列数组,然后在循环中不是直接输入到Range对象中,而是先存入arr数组中。最后一次性的把arr数组中的数字输入到A1:A10000区域中。最终运行时间是0.062秒,比代码1快了十几倍。

由上述2段代码可以看到,大循环中调用对象对速度的影响非常的大,在写代码时尽量的规避把VBA对象放在循环中调用。

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网