如何将一个二维数组的内容复制到另一个? (VBA)
How to copy the contents of one 2d array to another? (VBA)
我当前的代码如下所示:
Dim Array1(1 To 2, 1 To 2) As Variant
Dim Array2(1 To 2, 1 To 2) As Variant
Array1(1, 1) = "A"
Array1(1, 2) = "B"
Array1(2, 1) = 1
Array1(2, 2) = "C"
Array2 = Array1
但是 returns 出现“编译错误:无法分配给数组”
如有任何关于如何解决此问题的建议,我们将不胜感激
双循环:
Sub qwerty()
Dim Array1(1 To 2, 1 To 2) As Variant
Dim Array2(1 To 2, 1 To 2) As Variant
Array1(1, 1) = "A"
Array1(1, 2) = "B"
Array1(2, 1) = 1
Array1(2, 2) = "C"
For i = 1 To 2
For j = 1 To 2
Array2(i, j) = Array1(i, j)
Next j
Next i
End Sub
或者你可以作弊:
Sub qwerty2()
Dim Array1(1 To 2, 1 To 2) As Variant
Dim Array2
Dim r As Range
Set r = Range("A1:B2")
Array1(1, 1) = "A"
Array1(1, 2) = "B"
Array1(2, 1) = 1
Array1(2, 2) = "C"
r = Array1
Array2 = r
End Sub
编辑#1:
BigBen 提出的解决方案有效,它可能是最好的方法。
我当前的代码如下所示:
Dim Array1(1 To 2, 1 To 2) As Variant
Dim Array2(1 To 2, 1 To 2) As Variant
Array1(1, 1) = "A"
Array1(1, 2) = "B"
Array1(2, 1) = 1
Array1(2, 2) = "C"
Array2 = Array1
但是 returns 出现“编译错误:无法分配给数组”
如有任何关于如何解决此问题的建议,我们将不胜感激
双循环:
Sub qwerty()
Dim Array1(1 To 2, 1 To 2) As Variant
Dim Array2(1 To 2, 1 To 2) As Variant
Array1(1, 1) = "A"
Array1(1, 2) = "B"
Array1(2, 1) = 1
Array1(2, 2) = "C"
For i = 1 To 2
For j = 1 To 2
Array2(i, j) = Array1(i, j)
Next j
Next i
End Sub
或者你可以作弊:
Sub qwerty2()
Dim Array1(1 To 2, 1 To 2) As Variant
Dim Array2
Dim r As Range
Set r = Range("A1:B2")
Array1(1, 1) = "A"
Array1(1, 2) = "B"
Array1(2, 1) = 1
Array1(2, 2) = "C"
r = Array1
Array2 = r
End Sub
编辑#1:
BigBen 提出的解决方案有效,它可能是最好的方法。