复制
收藏
提问
研究
vba 二维数组快速赋值
4月前
全网
文档
学术
百科
知识库
参考了9个来源并总结
查看步骤
全网检索信息
vba
二维数组
赋值
找到“baijiahao.baidu”、“blog.csdn”、“知乎专栏”等9个网站资料
回答完成
回答研究模式
更简洁一些
在VBA中,对二维数组进行快速赋值可以通过多种方法实现。以下是一些常用的方法:
-
使用
Array()
函数进行整行赋值。例如,如果你想要创建一个3x3的整数数组并进行整行赋值,可以使用以下代码:Dim myArray(1 To 3, 1 To 3) As Integer myArray(1) = Array(1, 2, 3) myArray(2) = Array(4, 5, 6) myArray(3) = Array(7, 8, 9)
这种方法可以快速地为每一行赋上不同的值。2
-
使用For循环和数组的赋值语句来整行赋值。例如,以下代码定义了一个3x5的字符串数组,并使用For循环为每一行赋值:
Dim arr(1 To 3, 1 To 5) As String For i = 1 To 3 arr(i, 1) = "Row " & i & " Col 1" arr(i, 2) = "Row " & i & " Col 2" arr(i, 3) = "Row " & i & " Col 3" arr(i, 4) = "Row " & i & " Col 4" arr(i, 5) = "Row " & i & " Col 5" Next i
这种方法适合在需要为数组的每个元素赋上不同值时使用。4
-
直接从Excel工作表给数组赋值。例如,以下代码将工作表中的数据赋值给一个二维数组:
Sub test() Dim arr(), brr(), crr() Dim iRow As Integer Dim iCol As Integer arr = Sheet1.UsedRange.Value iRow = UBound(arr, 1) iCol = UBound(arr, 2) End Sub
这种方法适合于将工作表中的数据直接转换为数组。3
-
如果需要将二维数组的值全部赋为0,可以使用以下简练的代码:
Dim arr(1 To 10, 1 To 10) As Variant arr = Application.WorksheetFunction.Transpose(arr) For i = 1 To 10 arr(i, 1) = 0 Next i arr = Application.WorksheetFunction.Transpose(arr)
这种方法通过先转置数组,然后对数组的第一列进行赋值,再次转置回来,实现快速将所有值赋为0。9
-
另外,VBA中还可以使用数组的定义方法,如直接赋值定义、调用Array函数定义、调用Excel工作表内存数组等,来快速赋值二维数组。6
-
获取二维数组的行数和列数可以通过
UBound
函数来实现,例如iRow = UBound(arr, 1)
和iCol = UBound(arr, 2)
分别获取数组的行数和列数。8
通过上述方法,你可以根据不同的需求和场景,选择最适合的方式来快速赋值VBA中的二维数组。
你觉得结果怎么样?