检测Excel工作表上的错误

有一个简单的方法来枚举范围内的错误?

我试图使用下面的代码,但它不起作用

Dim err As Object For Each err In Plan10.Range("M2:AB8000").Errors Debug.Print err.Value Next err 

我从文档中知道,我不能简单地使用range.errors枚举错误。 我解决了扫描范围内的每个单元格中的每个错误的问题,但它是痛苦的缓慢

有没有更好的方法来完成这项工作?

您可以使用SpecialCells来检索包含/评估为错误的单元格

如果在search范围内没有错误单元格,error handling将避免VBA错误

然后,您可以根据需要处理错误范围(如果存在于rng1rng2

 Sub GetErrors() Dim rng1 As Range Dim rng2 As Range On Error Resume Next Set rng1 = Sheets(1).Range("M2:AB8000").SpecialCells(xlConstants, xlErrors) Set rng2 = Sheets(1).Range("M2:AB8000").SpecialCells(xlFormulas, xlErrors) On Error GoTo 0 If Not rng1 Is Nothing Then MsgBox "Constant errors at " & rng1.Address If Not rng2 Is Nothing Then MsgBox "Formulae errors at " & rng2.Address End Sub