Excelmacros:忽略错误

我使用vba代码来查看数组中的值。 其中一些结果是“#N / A”,单元格左上方会出现一个绿色的三angular形。 我想自动删除绿色三angular形(忽略错误),但是“#N / A”结果应该保留,只要删除绿色的三angular形。

任何人都知道如何做到这一点?

提前致谢。

看起来好像你一次只能忽略一个单元格,否则它会给你一个应用程序定义或对象定义的错误

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

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

此外,请参阅XlErrorChecks枚举(Excel)以获取所有错误的列表。

你需要看起来像这样的代码:

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

这将清除错误三angular形(xlEvaluateToError等于1,这就是为什么前面的人在他们的答案中有Item(1))。

其他可能发生的错误可以通过类似的方式清除,通过改变Item的数量,例如,我已经使用了一块这样的代码来放置一个值(可能看起来像一个数字,但我想确保被视为文本)到一个单元格中:

 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以清除错误。

如果你想要绿色的三angular形消失,你需要设置Error.Ignore属性为true。 例如,如果在单元格A1中有一个如“= 1/0”的公式,那么在VBA中可以这样做:

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

绿色的三angular形将消失。

你可以使用下面的公式:

= IFERROR(VLOOKUP([Your Value],[Your Ra​​nge],[Your Column],FALSE),NA())