【问题标题】:Excel macro: ignore errorExcel 宏:忽略错误
【发布时间】:2014-03-05 09:08:38
【问题描述】:

我正在使用 vba 代码从数组中查找值。一些结果是“#N/A”,单元格左上方会有一个绿色三角形。我想自动删除绿色三角形(忽略错误),但应该保留“#N/A”结果,只需删除绿色三角形即可。

有人知道怎么做吗?

提前致谢。

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    似乎您一次只能忽略一个单元格,否则它会给您一个应用程序定义或对象定义的错误

    所以,你需要这样的东西......

    Dim Cell As Range, Target As Range
    
        Set Target = Range("C10:D17")
        For Each Cell In Target
            Cell.Errors(xlEvaluateToError).Ignore = True
        Next
    

    另外,请参阅XlErrorChecks Enumeration (Excel) 了解所有错误的列表。

    【讨论】:

    • @Gass,我不敢苟同;此方法在 Excel 2013 32 位上进行了测试和实施,效果令人满意。你用的是什么版本?
    • 微软Office 365
    【解决方案2】:

    您需要如下所示的代码:

    Dim r as Range
    ...
    r.Errors.Item(xlEvaluateToError).Ignore = True
    

    这将清除错误三角形(xlEvaluateToError 等于 1,这就是前一个人的答案中有 Item(1) 的原因)。

    可能发生的其他错误可以通过更改项目的编号以类似的方式清除,例如我使用这样的代码块将一个值(可能看起来像一个数字,但我想确保被视为文本)放入一个单元格:

    With Target_Sheet.Cells(RowNum, ColNum)
        .NumberFormat = "@"     ' Force the cell to be treated as text
        .Value = whatever_value_im_trying_to_set
        .Errors.Item(xlNumberAsText).Ignore = True
    End With
    

    有关您可以检查或忽略的错误代码的完整列表,请参阅 Errors.Item 属性的 Excel 帮助。

    您也可以通过查询.Errors.Item(xlNumberAsText).Value的值(或其他错误码)查看是否发生错误,但不能设置.Value来清除错误。

    【讨论】:

      【解决方案3】:

      如果您希望绿色三角形消失,您需要将 Error.Ignore 属性设置为 true。例如,如果您在单元格 A1 中有一个公式,例如“=1/0”,那么在 VBA 中您可以执行以下操作:

      Dim r as Range
      Set r = Range("A1")
      r.Errors.Item(1).Ignore = True
      

      绿色三角形会消失。

      【讨论】:

      • 感谢您的回复!我试过你的方法,但返回“应用程序未定义”错误...@steveo40
      • 如果您将代码完全复制到一个新的子代码中并将狡猾的公式弹出到单元格 A1 中,它应该可以正常工作。 (在新的工作簿中进行。)
      • Item(1) 是否意味着选中了一个单元格? @steveo40
      【解决方案4】:

      你可以使用这个公式:

      =IFERROR(VLOOKUP([Your Value], [Your Range], [Your Column], FALSE), NA())
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-14
        • 1970-01-01
        • 2018-05-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多