admin 管理员组文章数量: 1184232
2024年4月21日发(作者:英文网站源码)
****************************************************************************************************
* VBA数组教程 *
* --------excel精英培训网:兰色幻想 *
****************************************************************************************************
从一个实例开始
Sub v4() '运行时间0.01秒
Dim t
t = Timer
For x = 1 To 100000
m = m + 1000 '真接调用内存中的值
Next x
MsgBox Timer - t
End Sub
Sub v5() '运行时间0.5秒
Dim t
t = Timer
For x = 1 To 100000
m = m + Cells(1, 1) '调用单元格中的值
Next x
MsgBox Timer - t
End 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 - t
End Sub
如果VBA多次调用同一样单元格,我们可以先把这个单元格放在一个变量中,如果是多行多列的单元
格区域呢?我们同样可以把把这个区域的值装入一个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
Next y
Next x
版权声明:本文标题:VBA数组与字典知识与实例---数组 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1713689381a647113.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论