4

I'm trying to get the current cell number whilst looping through a range of cells.

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

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

Next

The purpose of this is to retrieve a value from another cell in the same row e.g. A1 and B1.

4

3 回答 3

2

可能被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
于 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 回答
0

尝试这个

Dim i as Integer

    For Each i In Sheet3.Range("A3:D213").Rows.Count
     msgbox(Sheet3.Range("B" & i).Value)
    Next i
于 2013-09-12T10:27:02.477 回答