VBA学习_2:数组:同类型的多个变量的集合
声明数组:名称、数据类型和数组大小
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 常量类型 = 存储在常量中是数据