从细胞vba Bilding 3x3arrays

我已经有了9个单元格,如

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

我想build立一个3×3的matrix,以便稍后对它进行一些操作

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 

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

谢谢

首先,你应该总是明确地声明你的variables,以避免混淆和大量的错误。 Option Explicit在模块顶部Option Explicit会强制你这样做。

那么你的数组没有正确的声明,如你所说。 然后,你的逻辑从ActiveSheet.Cellsselect值也有问题。 我认为你需要像下面这样的东西:

 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