********************************************************************************************************************************************************************************************************从一个实例开始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 - tEnd Sub 如果VBA多次调用同一样单元格,我们可以先把这个单元格放在一个变量中,如果是多行多列的单元* VBA数 组 教 程 ** --------excel精 英 培 训 网 :兰 色 幻 想 *格区域呢?我们同样可以把把这个区域的值装入一个VBA变量。 Sub v6() x = Range("a1:10000") End Sub这个VBA变量装入大于1个的数据时,就构成了VBA内存数组。那什么是VBA数组呢?1、什么是VBA数组呢? VBA数组就是储存一组数据的数据空间。数据类型可以数字,可以是文本,可以是对象,也可以是VBA数组。2 VBA数组的分类 A.按维数划分 1维数组 Sub t1() Dim arr(1 To 10) For x = 1 To 10 arr(x) = x Next x Stop End Sub 2维数组 Sub t2() Dim arr(1 To 10, 1 To 2) For x = 1 To 10 For y = 1 To 2 arr(x, y) = x * y Next y Next x Stop End Sub 3维数组 Sub t3() Dim arr(1 To 10, 1 To 2, 1 To 3) For x = 1 To 10 For y = 1 To 2 For z = 1 To 3 arr(x, y, z) = x * y + z Next z ...