如何将一个二维数组的内容复制到另一个? (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 提出的解决方案有效,它可能是最好的方法。