********************************************************************************************************************************************************************************************************从一个实例开始Sub v4() '运行时间0
01秒 Dim t t = Timer For x = 1 To 100000 m = m + 1000 '真接调用内存中的值 Next x MsgBox Timer - tEnd SubSub v5() '运行时间0
5秒 Dim t t = Timer For x = 1 To 100000 m = m + Cells(1, 1) '调用单元格中的值 Next x MsgBox Timer - tEnd Sub运行的结果是直接调用内存中的值比调用单元格的值快了50倍,为什么会这样呢
我们需要了解一下VBA的运算原理 ********** VBA的 运 算 原 理 ********* VBA中的运算最终是在内存中进行的,如果数据已经在内存中,则直接进行运算,但如果数据是储存在第三方对象(如单元格里,控件里)里,则还需要先把数据从第三方对象里调入到内存中,然后再在内存中对数据进行运算
如果把v5的程序进行稍微改动,运行时间会大大缩短
Sub v5_2() '运行时间0
5秒 Dim x, t t = Timer x = Cells(1, 1) '把单元格的值先交给变量 For x = 1 To 100000 m = m + x Next x MsgBox Timer - tE