如何根据列值保留某些行并删除其余行?
现在我重复我想删除的值。
With ActiveSheet
FirstRow = 4
LastRow = 10000
For Row = LastRow To FirstRow Step -1
If .Range("A" & Row).Value = "ITT1" Then
.Range("A" & Row).EntireRow.Delete
End If
Next Row
End With
1条答案
按热度按时间lyr7nygr1#
你需要使用
<>
或Not
来否定你的If
语句:就用
或
删除除列A中值为
ITT1
的行以外的所有行。请注意,与硬编码最后一行
LastRow = 10000
不同,您可以使用以下命令来确定它:因此,如果只有
100
行,则循环不会从10000
开始,而只是在实际有数据的行上循环。所以它应该看起来像这样:
如果它必须删除很多行,这可能会有点慢。所以我建议使用
Union
将要删除的行收集在一个变量中,并在最后一次性删除它们,这是快得多:如果你首先收集一个变量中所有要删除的行,你甚至不需要向后运行循环
Step - 1
,如果你喜欢,只需要使用一个正常的向前循环: