在SpecialCells(xlCellTypeBlanks).EntireRow.Delete中随机获取应用程序错误

Sheet1.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete 

大家好,

如果单元格为空白,我使用上面的代码删除columnA中单元格的整行。 这可以很好地处理ColumnA中有空白单元格的表格,但是当VBA无法find任何空白行时,它可以删除它,从而发生错误。 这是真的吗? 我不想添加一个On Error因为我不想让其余的代码行受到任何on-error-then-skip代码的影响。

莎拉

这是真的吗?

是的,如果没有空白单元格, SpecialCells(xlCellTypeBlanks)会引发运行时错误。

正如我在评论中提到的,通常的做法是用OERN statemtent“夹心”代码:

 On Error Resume Next Sheet1.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete On Error GoTo 0 

我不想添加一个On Error因为我不想让其余的代码行受到任何on-error-then-skip代码的影响。

你绝对是正确的 – 使用On Error Resume Next没有On Error GoTo 0真的很糟糕的主意 。 这就是为什么我使用线On Error GoTo 0 ,它返回您的error handling程序为默认模式。