如何在循环显示一系列单元格时获取当前单元格编号(Excel VBA)

时间:2013-09-12 09:42:27

标签: excel vba

我正在尝试获取当前的单元格数,同时循环遍历一系列单元格。

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

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

Next

这样做的目的是从同一行中的另一个单元格中检索值,例如A1和B1。

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

试试这个

Dim i as Integer

    For Each i In Sheet3.Range("A3:D213").Rows.Count
     msgbox(Sheet3.Range("B" & i).Value)
    Next i

答案 2 :(得分:0)

在你的代码变量中,我是一个Range类型,因此你必须这样对待它。您可以使用Offset来获取与您的i地址相关的内容,例如:

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

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

Next i