如何获取当前的单元格编号,同时循环一系列单元格(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 

在你的代码variables中,我是Rangetypes的,所以你必须这样对待它。 你可以使用Offset来获得与你的i地址相关的东西,例如:

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