2

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

我尝试使用以下代码,但它不起作用

Dim err As Object

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

我从文档中知道,我不能简单地使用range.errors. 我解决了扫描范围内每个单元格中的每个错误的问题,但是速度非常慢

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

4

1 回答 1

4

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

VBA如果正在搜索的范围内没有错误单元格,则错误处理会避免错误

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

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
于 2012-11-05T12:25:04.967 回答