我创建了一个循环,但无法弄清楚如何阻止它。我希望循环在活动单元格为空时停止,但即使单元格为空它也会继续循环。
var lineFunction = d3.svg.line()
.x(function (d)
{ return d.x; })
.y(function (d)
{ return d.y; })
.interpolate("linear");
这是我到目前为止创建的,它打印所选“单位”的表格,一旦打印完所有表格,它将删除单位并打印下一个单位表格。我添加了多个单位,循环效果很好但是当没有单位时它不会停止。有什么建议吗?
答案 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
上运行。 Variant
是ActiveCell
对象,可转换为Range
,因此Variant
可以对其进行操作。 那个变种因此不是空的。因此,IsEmpty
会在您的案例中返回IsEmpty
。
修复很简单:使用False
。