无法终止我的循环

时间:2015-08-04 19:27:24

标签: excel vba excel-vba loops terminate

我创建了一个循环,但无法弄清楚如何阻止它。我希望循环在活动单元格为空时停止,但即使单元格为空它也会继续循环。

 var lineFunction = d3.svg.line()
                        .x(function (d)
                        { return d.x; })
                        .y(function (d)
                        { return d.y; })
                        .interpolate("linear");

这是我到目前为止创建的,它打印所选“单位”的表格,一旦打印完所有表格,它将删除单位并打印下一个单位表格。我添加了多个单位,循环效果很好但是当没有单位时它不会停止。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

IsEmpty检查的值是空的(null)。细胞本身永远不会,但它的价值可以。稍微改变一下检查:

Do Until IsEmpty(ActiveCell.Value)

答案 1 :(得分:0)

您是否排除了其他工作表对您的代码的影响?

我刚刚在自己的电子表格中测试了这段代码,当没有更多数据时,它会完全停止:

Sub thisWorks()
    Rows("9:9").Select

    Do Until IsEmpty(ActiveCell)
        Rows("9:9").Select
        Selection.Delete Shift:=xlUp
    Loop
End Sub

3个原始建议:

1) 首先,尝试在进程结束时明确选择一个单元格(某些版本的Excel中有奇怪的错误):

Rows("9:9").EntireRow.Range("A1").Select

这取决于您提供的代码Rows("9:9").Select

2)其次,尝试使用ActiveCell.Value = ""代替IsEmpty()。也许你不知道的单元格中有数据。

3)最后,尝试修剪空白支票内的单元格值:

Do Until IsEmpty(Trim(ActiveCell))

如果不了解您的数据,很难说更多。

答案 2 :(得分:0)

Document Mode = 5 IsEmpty上运行。 VariantActiveCell对象,可转换为Range,因此Variant可以对其进行操作。 那个变种因此不是空的。因此,IsEmpty会在您的案例中返回IsEmpty

修复很简单:使用False