不能终止我的循环

我已经创build了一个循环,但不知道如何阻止它。 当活动单元格为空时,我希望循环停止,即使单元格是空的,它也会继续循环。

Do Until IsEmpty(ActiveCell) Sheets("UNIT BUYSHEET").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("PAYOFF INFO & LIEN RELEASE").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("AUTHORIZATION FOR PAYOFF").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("GUARANTEE OF TITLE").Select ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ IgnorePrintAreas:=False Sheets("FLEET LIST & QUOTE").Select Rows("9:9").Select Selection.Delete Shift:=xlUp Loop 

这是我迄今为止创build的,它打印所选“单位”的表单,一旦所有表单被打印,它将删除单位,并打印下一个单位表格。 我已经添加了多个单位,循环工作很好,但不会停止,当没有更多的单位。 有什么build议?

IsEmpty检查是一个值为空(空)。 细胞本身从来没有,但它的价值可以。 稍微改变一下检查:

 Do Until IsEmpty(ActiveCell.Value) 

IsEmptyVariantActiveCell是一个Range对象,它被转换为一个Variant所以IsEmpty可以对它进行操作。 因此这个变体不是空的。 所以IsEmpty会在你的情况下返回False

修复很简单:使用IsEmpty(ActiveCell.Value)

你排除了其他工作表对代码的影响吗?

我刚刚在自己的电子表格上testing了这段代码,并且在没有更多数据的时候停止:

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

3原build议:

1)首先,尝试显式select一个单元格(在某些版本的Excel中有奇怪的错误):

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

这是基于你提供的代码已经说Rows("9:9").Select

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

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

 Do Until IsEmpty(Trim(ActiveCell)) 

不知道更多关于您的数据的情况,很难说更多。