我有一个包含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
哪个不起作用(类型不匹配),很明显我没有正确定义数组,但我无法弄明白。
感谢
答案 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