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 に答える