从单元格vba构建3x3数组

时间:2013-03-12 13:18:46

标签: arrays excel vba excel-vba

我有一个包含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

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

感谢

1 个答案:

答案 0 :(得分: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