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



我正在尝试在循环浏览一系列单元格时获取当前单元格编号。

For Each i In Sheet3.Range("A3:A213")
  msgbox(Sheet3.Range("B"&currentcellnumberinloop).Value)
Next

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

i可能声明为 Range 对象(或 Variant)。因此,要获取行号并检索相邻B列中的值,您必须调用i对象的 .Row 方法

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

试试这个

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

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

For Each i In Sheet3.Range("A3:A213")
  MsgBox (i.Offset(0, 1).Value)
Next i

最新更新