声明数组:名称、数据类型和数组大小

1、通过起始和终止索引号定义数组大小

  指定开始索引:Public | Dim 数组名称(a To b) As 数据类型, a和b为整数(不能是变量),分别表示数组的开始和终止索引号,可保存数据个个数(b-a+1)个

  未指定开始索引:Public | Dim数组名称(a) As 数据类型  ,从0开始到a个元素

Dim arr(1 To 100) As Byte   '定义一个Byte类型,名称为arr,大小为100的数组
Dim arr(99) As Byte   '定义一个Byte类型,名称为arr,大小为100的数组

2、给数组元素赋值

arr(20) = 56

声明多维数组

  指定开始索引:Public | Dim 数组名称(a To b,  x To y) As 数据类型  

  未指定开始索引:Public | Dim 数组名称(b,  y) As 数据类型   

  定义一个b行,y列的二维数组

声明动态数组

  Public | Dim 数组名称() As 数据类型 

重新定义数组大小

  ReDim 数组名称(1 To a)  只能定义大小不能修改数据类型 

创建数组的其他方法

1、使用Array函数创建数组

Sub arrytest()
    Dim arr As Variant
    arr = Array(1, 2, 3, 4)
    Msybos "arr数组的第二个元素为 : " & arr(1)
End Sub

2、使用Split函数分割字符串创建数组

Sub arrytest()
    Dim arr As Variant
    arr = Split("char,huang,car,box", ",") '第一参数是字符串,第二个参数是分割符
    Msybos "arr数组的第二个元素为 : " & arr(1)
End Sub

3、通过单元格区域创建数组(索引从1开始)

Sub arrytest()
    Dim arr As Variant
    arr = Range("A1:C3").Value '把A1:C3数据保存到数组
    Range("E1:G3").Value = arr '把数组数据保存到表格E1:G3中
    Msybos "arr数组的第二个元素为 : " & arr(1)
End Sub

数组的运算

1、UBound(数组名称,数组维度n) 数组n维度上的最大索引号(n可以缺默认第一维度)

Sub test()
    Dim arr(99) As Integer
    MsgBox UBound(arr)
End Sub

2、LBound(数组名称,数组维度n)数组n维度上的最小索引号(n可以缺默认第一维度)

Sub test()
    Dim arr(99) As Integer
    MsgBox LBound(arr)
End Sub

3、UBound(数组名称,数组维度n)-LBound(数组名称,数组维度n)+1 :n维度上数组的元素个数

4、Join(数组名称,拼接符号)函数把数组拼接为字符串(默认空格拼接)

5、把数组写入单元格区域

Range("A1").Value = arr(2)
Sub test()
    Dim arr As Variant '定义一个Variant类型的变量
    arr = Array(1, 2, 3, 4, 5)
    '把数组arr数据写入活动的工作表的A1:A5中
    Range("A1:A5").Value = Application.WorksheetFunction.Transpose(arr) 'Transpose把行数据转为列
End Sub

声明常量的同时给常量赋值

  过程内部使用Const(本地常量): Const 常量名称 As 常量类型 = 存储在常量中是数据

  模块的第一过程之前使用Const(模块级常量) :Const 常量名称 As 常量类型 = 存储在常量中是数据

  模块的第一个过程之前使用Public(公共常量):Public 常量名称 As 常量类型 = 存储在常量中是数据