使用VBA删除excel工作表中的行



如果两列值相同,我必须删除该行。如果B列和D列的值相同,那么我必须删除那一行。我正在使用一种方法,但它花费了太多时间。有其他方法吗

一次性删除所有行比逐个删除更快。保存应该删除的范围,然后在最后将其全部删除。

若要将范围相加,您需要使用并集(Range1,Range2(,但如果其中一个范围为空,则会出现错误。因此,对于第一行,只需要Set而不需要Union((。见下文:

Dim i As Long, rDel As Range
For i = lngLstRow To 1 Step -1
If Range("B" & i).Value = Range("D" & i).Value Then
If rDel Is Nothing Then
Set rDel = Rows(i).EntireRow
Else
Set rDel = Union(rDel, Rows(i).EntireRow)
End If
Next i
rDel.Delete

最新更新