Excel宏:忽略错误

Excel宏:忽略错误,excel,vba,Excel,Vba,我正在使用vba代码从数组中vlookup值。部分结果为“#N/A”,单元格左上方将有一个绿色三角形。我想自动删除绿色三角形(忽略错误),但“#N/A”结果应该保留,只需删除绿色三角形即可 有人知道怎么做吗 提前感谢。如果希望绿色三角形消失,则需要设置错误。忽略属性为true。例如,如果单元格A1中有一个公式,如“=1/0”,则在VBA中可以执行以下操作: Dim r as Range Set r = Range("A1") r.Errors.Item(1).Ignore = True Dim

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

有人知道怎么做吗


提前感谢。

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

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

绿色三角形将消失。

您可以使用以下公式:

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

您需要这样的代码:

Dim r as Range
Set r = Range("A1")
r.Errors.Item(1).Ignore = True
Dim r as Range
...
r.Errors.Item(xlEvaluateToError).Ignore = True
这将清除错误三角形(XleValueToError等于1,这就是前一个人在回答中有第(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
有关错误,请参见Excel帮助。有关可检查或忽略的错误代码的完整列表,请参见Item属性


您还可以查询
.Errors.Item(xlNumberAsText).value
(或其他错误代码)的值以查看是否发生了错误,但您无法设置.value来清除错误。

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

所以,你需要这样的东西

Dim Cell As Range, Target As Range

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

另外,请参阅以获取所有错误的列表。

谢谢您的回复!我尝试了你的方法,但返回了“应用程序未定义”错误…@Steveo40如果你将代码准确地复制到一个新的子单元中,并将不可靠的公式弹出到单元格A1中,应该可以正常工作。(在新工作簿中执行。)项目(1)是否表示选择了一个单元格@史蒂文:不行,不行work@Gass,我不敢苟同;该方法在32位Excel 2013上进行了测试和实现,效果令人满意。您使用的是什么版本?microsoft office 365