我正在尝试删除D列中单元格具有背景色的所有行。我已经在下面编写了代码,但是每次运行它时,它都会无限期运行,直到最终崩溃。 ws1
和lastrow2
的定义都很好(我提到它是为了清除这种可能导致我的宏无法运行的可能性)
With ws1
lastrow2 = ws1.Range("A" & Rows.Count).End(xlUp).Row
For i = lastrow2 To 2 Step -1
nodel = False
If .Cells(i, "D").Interior.ColorIndex = 0 Then
nodel = True
End If
If Not nodel Then
.Rows(i).EntireRow.Delete
End If
Next i
End With
答案 0 :(得分:5)
请勿使用 0 :
Sub qwerty()
Dim ws1 As Worksheet: Set ws1 = ActiveSheet
Dim Nodel As Boolean
With ws1
lastrow2 = ws1.Range("A" & Rows.Count).End(xlUp).Row
For i = lastrow2 To 2 Step -1
Nodel = False
If .Cells(i, "D").Interior.ColorIndex = -4142 Then
Nodel = True
End If
If Not Nodel Then
.Rows(i).EntireRow.Delete
End If
Next i
End With
End Sub
EDIT#1:
如果您要保留具有白色背景的单元格,请首先确认“白色”对应于“ colorindex = 2”,然后使用 2 代替 -4142 。