每个循环的excel vba一次需要2个步骤

时间:2009-07-13 16:23:16

标签: excel-vba for-loop foreach vba excel

我想处理for循环的每个元素。使用此代码,为什么只处理每个第二个元素?

For Each row In ws.Rows
    If IsEmpty(row.Cells(row.row, 1)) Then
        Exit For
    Else
        MsgBox row.Cells(row.row, 1).value
    End If
Next

提前感谢您的回答!

2 个答案:

答案 0 :(得分:2)

不是引用Row.Cells而是引用Worksheet.Cells。 此外,您可能希望选择工作表的ActiveRange,这样可以防止for-each中出现大量无用的行。

查看MSDN上的示例。

答案 1 :(得分:0)

将ws设置为包含值1-10的单元格范围B1:B10的范围将产生所需的结果:

Sub Macro1() Dim ws As Range

设置ws =范围(“B1:B10”)

对于ws.Rows中的每一行

If IsEmpty(ws.Cells(Row.Row, 1)) Then
    Exit For
Else
    MsgBox ws.Cells(Row.Row, 1).Value
End If

下一步

End Sub