我想处理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
提前感谢您的回答!
答案 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