【问题标题】:How to copy the contents of one 2d array to another? (VBA) [duplicate]如何将一个二维数组的内容复制到另一个? (VBA)[重复]
【发布时间】:2021-01-31 17:22:31
【问题描述】:

我当前的代码如下所示:

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

然而,这会返回“编译错误:无法分配给数组”

任何有关如何解决此问题的建议将不胜感激

【问题讨论】:

  • Dim Array2() As Variant.
  • @BigBen:是的,这就是解决方案。即使Dim Array2...

标签: arrays excel vba compiler-errors


【解决方案1】:

双循环:

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 提出的解决方案行之有效,它可能是最好的方法。

【讨论】:

  • @VBasic2008 我同意 BigBen。
猜你喜欢
  • 2021-12-31
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多