1

我有一排有 9 个单元格,例如

1,2,3,4,5,6,7,8,9

我想构建一个 3x3 矩阵,例如,以后用它做一些操作

1,2,3

4,5,6

7,8,9

我试过下面的代码

dim varr as variant
for i = 0 to 1
    for j = 1 to 3
        varr(i, j-1) = activesheet.cells(1, 3+i+j))
    next j
next i

这不起作用(类型不匹配),很明显我没有正确定义数组,但我无法弄清楚。

谢谢

4

1 回答 1

1

首先,您应该始终显式声明变量以避免混淆和大量错误。Option Explicit在您的模块顶部将迫使您这样做。

然后你的数组没有正确声明,正如你所提到的。然后,您从 中选择值的逻辑也有问题ActiveSheet.Cells。我认为您需要以下内容:

Option Explicit

Sub Test()
    Dim varr(2, 2) As Variant
    Dim i As Integer
    Dim j As Integer

    For i = 0 To 2
        For j = 0 To 2
            varr(i, j) = ActiveSheet.Cells(1, 1 + j + (i * 3))
        Next j
    Next i

    For i = 0 To 2
        For j = 0 To 2
            Debug.Print "varr(" & i & ", " & j & ") = " & varr(i, j)
        Next j
    Next i
End Sub
于 2013-03-12T13:33:43.037 回答