Excel vba 数组批量赋值有其他好的表达方式达到所要的结果吗

2024-11-21 11:00:58
推荐回答(2个)
回答1:

数组本身就可以包含多个成员,无需定义多余变量,参考代码如下:

Sub Test()
    Dim strMB(1 To 2) As String
    
    strMB(1) = "甲,乙"
    strMB(2) = "丙,丁"
    
    Dim intIndex As Integer
    Dim varArray(1 To 2) As Variant
    
    For intIndex = 1 To 2
        varArray(intIndex) = Split(strMB(intIndex), ",")
    Next
End Sub

将变量 varArray 添加到监视窗口后的显示结果如图所示:

此时的 varArray 数组实际上是一个嵌套数组,varArray(1)varArray(2)varArray 数组的两个成员,而它们本身又是一个分别嵌套了 varArray(1)(0 To 1)varArray(2)(0 To 1) 这两个数组的数组!

回答2:

Sub test()
    Dim i%, arr1(1 To 2), arr2(1 To 2) '不给数组定义数据类型,就默认为是Variant类型
    arr1(1) = "甲,乙"
    arr1(2) = "丙,丁"
    For i = 1 To 2
        arr2(i) = Split(arr1(i), ",") '用Variant类型的数组来获取结果,这样在arr2的每个元素中,都可以存储一个数组;Variant 是一种特殊的数据类型,除了定长 String 数据及用户定义类型外,可以包含任何种类的数据。
    Next
    For i = 1 To 2
        For j = 0 To 1
            MsgBox arr2(i)(j)
        Next
    Next
End Sub