array英 [əˈreɪ]
n.混合;多样;大群;大量;陈列;布置;列阵;排列;编队;排列;阵列;数组;数组;(雷达等的)天线阵;服装;盛装;陪审员名单;(军事力量的)配置;武装;装备;数组;
vt.盛装;打扮;整(队);使编成战斗队形;(为审理某一案件)选任,召集;
数组声明
数组声明的方式与声明变量相同,只是数组变量的声明使用括号。 在下面的例子中,括号里提到了数组的大小。参考以下示例 -
'Method 1 : Using Dim Dim arr1() 'Without Size
'Method2 : Mentioning the Size Dim arr2(5) 'Declared with size of 5 'Method 3 : using 'Array' Parameter Dim arr3 arr3 = Array("apple","Orange","Grapes") |
在上面代码中,
- 虽然数组大小被指定为
5 ,但是当数组索引从零开始时,它可以保持6 个值。
- 数组索引不能是负数。
- VBScript数组可以在数组中存储任何类型的变量。因此,一个数组可以在一个数组变量中存储一个整数,字符串或字符。
赋值给数组
通过为每个要分配的值指定一个数组索引值,将这些值分配给数组。它可以是一个字符串。
一维数组的声明,以及对声明的数组赋值。
Private Sub Constant_demo_Click() Dim arr(5) arr(0) = "1" 'Number as String arr(1) = "VBScript" 'String arr(2) = 100 'Number arr(3) = 2.45 'Decimal Number arr(4) = #10/07/2013# 'Date arr(5) = #12.45 PM# 'Time
msgbox("Value stored in Array index 0 : " & arr(0)) msgbox("Value stored in Array index 1 : " & arr(1)) msgbox("Value stored in Array index 2 : " & arr(2)) msgbox("Value stored in Array index 3 : " & arr(3)) msgbox("Value stored in Array index 4 : " & arr(4)) msgbox("Value stored in Array index 5 : " & arr(5)) End Sub |
多维数组
数组不仅限于一个维度,但它们最多可以有60 个维度。 二维数组是最常用的数组。 在下面的例子中,一个多维数组被声明为3 行4 列。
Private Sub Constant_demo_Click() Dim arr(2,3) as Variant ' Which has 3 rows and 4 columns arr(0,0) = "Apple" arr(0,1) = "Orange" arr(0,2) = "Grapes" arr(0,3) = "pineapple" arr(1,0) = "cucumber" arr(1,1) = "beans" arr(1,2) = "carrot" arr(1,3) = "tomato" arr(2,0) = "potato" arr(2,1) = "sandwitch" arr(2,2) = "coffee" arr(2,3) = "nuts"
msgbox("Value in Array index 0,1 : " & arr(0,1)) msgbox("Value in Array index 2,2 : " & arr(2,2)) End Sub |
实例: dir目录下的所有文件存入vba的数组中。
数组的范围要适当大一些,否则会出错,超下限等等。
Sub copypaste() Dim a As String a = Dir("C:\Users\Administrator\Desktop\库热力入库单\2023年入库单\") Dim i As Integer Dim arr1(1 To 100) i = 1 Do While a <> "" arr1(i) = a a = Dir i = i + 1 Loop Debug.Print arr1(1) End Sub |
可以对地址进行单独定义,便于管理,代码如下:
Sub copypaste() Dim dir1 As String Path1 = "C:\Users\Administrator\Desktop\库热力入库单\2023年入库单\" dir1 = Dir(Path1) Dim i As Integer Dim arr1(1 To 100) i = 1 Do While dir1 <> "" arr1(i) = dir1 dir1 = Dir i = i + 1 Loop End Sub |
运行以上代码,不会有任何显示,可以按F8,在本地窗口进行查看,因为目录下的文件是放到了数组当中,内存中。
|