VBA加快代码运行效率

由于VBA运行在Excel中,受VB语言和Excel的限制,遇到稍大的计算量,Excel可能出现假死现象,运行时间也比较长,所以在编写好代码后,可以对代码进行一定的优化,提高VBA的运行效率。

网上有很多关于提高VBA代码运行效率的方法,我从中总结了以下14条,我自己使用过程中感觉效果比较好。

  1. 声明变量
    变量声明为非Variant,避免使用浮点型变量。
     
  2. Range("A1")  比  [A1]  更快
    因为  [A1]  需要调用Application.Evaludate("A1")。
     
  3. 禁止屏幕刷新、计算模式手动
    Application.ScreenUpdating = False  ' 开启屏幕刷新
    Application.ScreenUpdating = True  ' 关闭屏幕刷新
    
    Application.Calculation = xlCalculationManual  ' 计算模式为手动
    Application.Calculation = xlCalculationAutomatic  ' 计算模式为自动

    需要注意的是在sub结束的时候,要将计算模式改回为自动,这样表格中才能自动进行公式计算等。

  4. 使用工作表(Worksheet)的数字编号比引用“名称”更快
    直接使用 sheet(1) 比 引用工作表的名字更快,但是不安全,需要注意sheet的实际编号,以及新建、删除工作表等操作,引起sheet的编号变化。

  5. 常量比变量更快

  6. For each  比  For 更快

  7. 尽量不用Selection
    代码中有 
    ***.select  /  selection  组合的,都尽量直接引用对象

  8. 对同一目标进行多次操作时,尽量用  With...End With

  9. 内置函数比自己写的函数快,即尽量不重复造轮子

  10. 明确对象属性
    引用  Cell(1,1).value  比  Cell(1,1)  

  11. 多用简单句,少用复合句
    If A And B Then ... End If  比两个If语句慢

  12. 并列条件Elseif 比Select快
    所以遇到多重条件判断时,把最常出现的条件放在前面,减少选择次数

  13. For 比 Do While快

  14. 使用内存数组变量
    Range("A1:F65536") = arr
     


版权声明:本文为wujinglin7原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。