4

セルの範囲をループしながら、現在のセル番号を取得しようとしています。

For Each i In Sheet3.Range("A3:A213")

  msgbox(Sheet3.Range("B"&currentcellnumberinloop).Value)

Next

これの目的は、同じ行の別のセル (A1 と B1 など) から値を取得することです。

4

3 に答える 3

2

iおそらく Range オブジェクト (または Variant ) として宣言されています。したがって、行番号を取得して隣接する列の値を取得するには、オブジェクトのメソッドBを呼び出す必要があります.Rowi

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
于 2013-09-12T12:41:18.297 に答える
0

コード変数 i は Range 型であるため、そのように扱う必要があります。Offset を使用して、次のように i アドレスに関連するものを取得できます。

For Each i In Sheet3.Range("A3:A213")

  MsgBox (i.Offset(0, 1).Value)

Next i
于 2013-09-12T12:34:12.987 に答える