大家在学习VBA,很多人知其然不知其所以然。
为什么大家配置电脑的时候,希望CPU大点,内存高点?那是因为所有的程序都必须在内存中运行,内存足够大,能运行的程序也就越多越快。
而VBA也是程序语言,同样遵循这样的逻辑。
所以,当我们在工作表或者单元格内使用循环的时候,往往会感觉执行了相当长的时间。这是因为,程序在不停地访问我们的单元格这个对象,因此拖慢了执行的效率。为了解决这个问题,我们就要想办法将单元格内容全部放到内存中去执行,这个时候,数组出场了。
下面我们来看两张图:
我们把一个对象变量看成一块砖,他好比工作表里面的一个单元格;
我们把一维数组看成一横排砖,相当于工作表中的一行;
而二维数组,我们可以看成是好多排砖,他在工作表的分布是多行n列,n可以为1.有同学会问,多行一列不也是一排吗,只不过是竖排而已?那么,这个问题你不需要纠结,反正多行就会构成二维数组。
那,什么是三维数组和多维数组呢?
三维数组,我们可以看成是很多个二维数组重叠而成,就相当于一个工作簿的多个工作表;而多维数组是很多个工作簿、很多台电脑的多个工作簿等等,这个不在我们的讨论之列。
一般而言,最常用的就是二维数组,还有一维数组。三维数组或者多维数组都可以通过数组的嵌套来解决,我前面也分享的有例子。
那么,一维数组和二维数组怎样定义的呢?
同变量定义一样,数组也是用关键字Dim进行定义的,如下所示:
Dim arrData(5) As String
定义一个一维数组,他的大小是从0-5的空间,一共6个,并且,这个数组只能装字符型的数据,我们表示第一个元素用arrData(0)
Dim arrData(1 To 5) As Integer
定义一个一维数组,他的大小是从1-5的空间,一共5个,并且,这个数组只能装短整型的数据,我们表示第一个元素用arrData(1)
Dim arrData(1 To 10, 1 To 20) As Date
定义一个二维数组,他的大小是从10*20的空间,并且,这个数组只能装日期型的数据,我们表示第一个元素用arrData(1,1)
Dim arrData(10, 20) As Long
定义一个二维数组,他的大小是从11*21的空间,并且,这个数组只能装长整型的数据,我们表示第一个元素用arrData(0,0)
Dim arrData(1 To 100, 1 To 10) As Variant
定义一个二维数组,他的大小是从100*10的空间,并且,这个数组可以装任意类型的数据,我们表示第一个元素用arrData(1,1)
正常情况下,如果我们没有特别需求,都可以定义变体型的数组,以适合装不同的数据。比如我们的工作表,不可能每一列他的类型都一样,所以用变体型的数组是最合适的。
今天关于数组的基本知识我们就介绍到这里,接下来我们会说一些更多关于数组的知识。
数组,如果你想提速,这一关不得不过!!
联系客服