当前,我正在使用以下代码来检查特定范围的单元格中A列的#N / A值,如果找到,则删除该行。
With Sheets(Sheet)
For LRow = 45 To 29 Step -1
With .Cells(LRow, "A")
If (CVErr(.Value) = CVErr(xlErrNA)) Then .EntireRow.Delete
End With
Next LRow
End With
我需要扩展它,以便我检查所有的第1列到第10列,而不只是A列。我尝试了这种轻微的修改(嵌套另一个循环),但是它不起作用。有什么建议?
With Sheets(Sheet)
For LRow = 45 To 29 Step -1
For LCol = 10 To 1 Step -1
With .Cells(LRow, LCol)
If (CVErr(.Value) = CVErr(xlErrNA)) Then .EntireRow.Delete
End With
Next LCol
Next LRow
End With
最佳答案
这里有两个问题:
嵌套
一旦找到N / A,就在任何给定的行上打开,您需要中止循环
尝试
Set sh = Sheets(Sheet)
For LRow = 45 To 29 Step -1
For LCol = 10 To 1 Step -1
If (CVErr(sh.Cells(LRow, LCol).Value) = CVErr(xlErrNA)) Then
sh.Cells(LRow, 1).EntireRow.Delete
Exit For ' Exit the LCol loop
End If
Next LCol
Next LRow