セルの範囲をループしながら、現在のセル番号を取得しようとしています。
For Each i In Sheet3.Range("A3:A213")
msgbox(Sheet3.Range("B"¤tcellnumberinloop).Value)
Next
これの目的は、同じ行の別のセル (A1 と B1 など) から値を取得することです。
はi
おそらく Range オブジェクト (または Variant ) として宣言されています。したがって、行番号を取得して隣接する列の値を取得するには、オブジェクトのメソッドB
を呼び出す必要があります.Row
i
Sub ForEachAndFor()
Dim i As Range
For Each i In Sheet3.Range("A3:A213")
MsgBox Sheet3.Range("B" & i.Row).Value
Next
End Sub
また、Offset(how_many_rows_up_or_down, how_many_columns_left_or_right)
正の数で行を下に、負の数で行を上に示します
列にも同じことが適用され-
、現在のセルの左側に移動するために使用され、現在のセルの右側に正の数が表示されます。
Sub ForEachSub()
Dim i as Range
For Each i in Sheet3.Range("A3:A213")
MsgBox i.Offset(0, 1).Value
next i
End Sub
コード変数 i は Range 型であるため、そのように扱う必要があります。Offset を使用して、次のように i アドレスに関連するものを取得できます。
For Each i In Sheet3.Range("A3:A213")
MsgBox (i.Offset(0, 1).Value)
Next i