Excel VBA:检测空单元格到结束循环

时间:2016-04-06 10:03:01

标签: vba excel-2007

在Excel 2007中,我导入了由一列行组成的数据。我希望设置一个VBA脚本,使用循环从上到下读取数据。循环应继续迭代,而第六列中的单元格不为空。 我试过了:

Do While IsEmpty(Cells(i,6)) = False
    ...
    i = i + 1
Loop

......还有

Do While Cells(i, 6).Value <> ""
    ...
    i = i + 1
Loop

循环执行它应该的操作,但随后出现错误,因为程序继续读取数据块下方。 (我在循环中插入了“On Error GoTo Catch”,然后在循环“Catch: MsgBox Cells(i, 6).Value & "Error”之后插入,以确认发生了错误。

循环中没有任何内容会影响Cells(i,6)

Stack Overflow中有很多关于空单元格的问题,但答案往往避免了如何检测空单元格以使循环结束的问题。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如果您在正确的表格中(以下替换),您发布的代码应该可以使用

i = 1    
Do While sheets("sheet1").Cells(i, 6).Value <> ""
     i = i + 1
Loop

您可以发布列结尾的屏幕截图吗?您的错误处理可能也会阻止错误消息,请尝试暂时禁用该错误消息。列是否都以某一行结束?您可以指定&#34; do while not blank AND row < end row&#34;。