【问题标题】:Getting Application Error randomly in SpecialCells(xlCellTypeBlanks).EntireRow.Delete在 SpecialCells(xlCellTypeBlanks).EntireRow.Delete 中随机获取应用程序错误
【发布时间】:2014-06-01 15:34:10
【问题描述】:
Sheet1.Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

大家好,

如果单元格为空白,我使用上面的代码删除列 A 中单元格的整行。这适用于在 ColumnA 中具有空白单元格的表格,但是当 VBA 无法找到任何空白行时,它可以删除它给我一个错误。真的是这样设置的吗?我不想添加On Error,因为我不希望其余代码行受到任何 on-error-then-skip 代码的影响。

莎拉

【问题讨论】:

  • I don't want to add an On Error... - I know what you mean。但是,您可以在 Sheet1.Columns("A:A")...On Error GoTo 0 之前添加 On Error Resume NextOn Error GoTo 0 会将您的错误处理程序返回到默认模式。)
  • 谢谢,这很有魅力。:)

标签: excel vba


【解决方案1】:

真的是这样设置的吗?

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

正如我在 cmets 中提到的,一般做法是将代码与 OERN 语句“夹在中间”:

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 真的是 bad idea。这就是我使用On Error GoTo 0 行的原因,它将您的错误处理程序返回到默认模式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    相关资源
    最近更新 更多