Class06. 数组
定义
下面是几种常见定义数组的方法。
' 定义一个一维数组,数据类型为Variant,长度从0到5,实际控件有六个,长度为5
Dim arr(5) as String
' 定义一个一维数组,数据类型为Variant,长度从1到5,实际控件有六个,长度为5
Dim arr(1 to 5) as String
' 可以省略As后面部分,等于 Dim arr2 () as Variant
Dim arr(5)
' 一维数组,下标从0开始
arr2 = Array("你好", "世界")
' 一维数组,下标从0开始
arr3 = [{1,2,3,4}]
计算数组长度
'数组下限:
LBOUND(数组) '结果:一般为0
'数组上限:
UBOUND(数组)
'数组长度:
UBOUND(数组)-LBOUND(数组)+1
动态分配数组
建议打断点查看数组容量的变化。
Sub test()
v_count = ActiveSheet.UsedRange.Rows.Count
ReDim arr(1 To v_count) As String
arr(1) = 1
arr(v_count) = v_count
' 二次扩充数组容量
ReDim Preserve arr(1 To 2 * v_count)
arr(2 * v_count) = 2 * v_count
For Each v_item In arr
If v_item <> "" Then
MsgBox (v_item)
End If
Next
End Sub
ReDim 后面如果不加 Preserve,结果会有所不同。
从区域中(Range)获取
' 可以直接将工作表中A1:E1区间内的二维表的数据写到数组中。
arr = Range("A1:E100")
Split 函数
Split 函数可以将字符串按某一个特定的分隔符分割成数组。
Sub test()
v_Str = "A-BC-d-E-"
arr = Split(v_Str, "-")
MsgBox (arr(2))
End Sub
[“A”,“BC”,“d”,“E”,""]
Join 函数
Join 函数和 Split 函数相反,可以将数组按特定的字符串连接起来。
arr2 = Array("你好", "世界")
v_str = Join(arr2,"-")
“你好-世界”