我要投稿 | RSS
您当前的位置:首页 > ExcelVBA

array数组

作者:      来源:原创

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个维度。 二维数组是最常用的数组。

在下面的例子中,一个多维数组被声明为34列。

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,在本地窗口进行查看,因为目录下的文件是放到了数组当中,内存中。

 
来顶一下
返回首页
返回首页
推荐资讯
{SUM函数}:计算单元格区域中所有数值的和
{SUM函数}:计算单元
LEFT函数:从一个文本字符串的第一个字符开始返回指定个数的字符
LEFT函数:从一个文本
MID函数:从文本字符串中指定的起始位置起返回指定长度的字符
MID函数:从文本字符
column函数:返回一引用的列号
column函数:返回一引
扫一扫微信二维码,联系作者:
相关文章
    无相关信息
栏目更新
栏目热门