或者,使用查找循环并在最后一次删除找到的行:
Sub tgr()
'Declare variables
Dim rngFound As Range 'Used for the find loop
Dim rngDel As Range 'Used to store matching rows
Dim strFirst As String 'Used to store the first cell address of the find loop to prevent infinite loop
'Search for #N/A in column C
Set rngFound = Columns("C").Find("#N/A", Cells(Rows.Count, "C"), xlValues, xlWhole)
'Make sure something was found
If Not rngFound Is Nothing Then
'Found something, record first cell address
strFirst = rngFound.Address
'Start loop
Do
'Check if cells in column C, D, and E are all #N/A
If Cells(rngFound.Row, "C").Text = "#N/A" _
And Cells(rngFound.Row, "D").Text = "#N/A" _
And Cells(rngFound.Row, "E").Text = "#N/A" Then
'Found they are all #N/A, store the row in rngDel
If rngDel Is Nothing Then Set rngDel = rngFound Else Set rngDel = Union(rngDel, rngFound)
End If
'Advance the loop to the next cell with #N/A in column C
Set rngFound = Columns("C").Find("#N/A", rngFound, xlValues, xlWhole)
'Exit loop when back to the first cell
Loop While rngFound.Address <> strFirst
End If
'If rngDel has anything in it, delete all of its rows
If Not rngDel Is Nothing Then rngDel.EntireRow.Delete
'Object variable cleanup
Set rngFound = Nothing
Set rngDel = Nothing
End Sub