搜索#N/A!在 sheet 中,如果找到则在 msgbox 中,如果找不到则在其他子目录中

Search for #N/A! in a sheet, msgbox if found, other sub when not found

努力通过子程序在 sheet 中搜索 #N/A!或者#REF!错误。 当至少发现一个错误时,它必须弹出一个消息框。如果没有错误,应该执行其他子 - sprzedaz2.

只要至少有一个错误,就没问题。但是对于一个没有错误的 sheet,它坏了,我想不出解决办法。

我目前拥有的:

Sub X_SPR_sprawdzbledy()
Application.Goto Workbooks("generator_komunikatow.xlsm").Sheets("komunikat_OS_sprzedaz").Range("a1")
On Error Resume Next
On Error GoTo 0
If Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).Cells.Count = 0 Then
Call sprzedaz2
Else:
MsgBox ("UWAGA! Znaleziono " & Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).Cells.Count & " bledow!" & vbNewLine & vbNewLine & "SPRAWDZ KOMORKI Z #N/A! lub #REF!")

End If
End Sub

主要问题:如果 SpecialCells 没有找到任何东西(在你的情况下,没有错误的单元格),它会抛出一个运行时错误,你需要捕获这个错误(范围永远不能有 0细胞)。以下代码将 SpecialCells 的结果分配给一个变量。如果因为找不到任何东西而失败,则变量保持未分配状态,这意味着它仍然保持 Nothing.

Dim errorCells As Range
On Error Resume Next
Set errorCells = Sheet1.UsedRange.SpecialCells(xlCellTypeFormulas, xlErrors).Cells
On Error GoTo 0
If errorCells Is Nothing Then    ' No errors in cells
    Call sprzedaz2
Else
    MsgBox "UWAGA! Znaleziono " & errorCells.Count & " bledow!" & vbNewLine & vbNewLine & "SPRAWDZ KOMORKI Z #N/A! lub #REF!"
End If

N.B。在 Else...

之后去掉 :