【发布时间】:2020-02-27 10:43:37
【问题描述】:
我有以下代码,现在卡住了。 而不是这一行,我实际上想删除该行。该怎么做?
cData(rw, 5) = "Matching DES found"
For rw = 1 To UBound(cData, 1)
'For Each e In cRng
For rw2 = 1 To UBound(cData, 1)
If Left(cData(rw, 1), 4) <> "DES_" Then
a = cData(rw, 3)
If Left(cData(rw2, 1), 4) = ("DES_") And Right(cData(rw2, 1), Len(a)) = a Then
cData(rw, 5) = "Matching DES found"
'cData(rw, 1) = Empty
Exit For
'GoTo nextI
Exit For
Else
cData(rw, 5) = "unique"
'GoTo nextE
End If
Else
'GoTo nextI
Exit For
End If
'nextE:
Next
'nextI:
Next
【问题讨论】:
-
如果您要删除行,您需要在循环中后退一步,否则可能会无意间跳过行。
-
您是否有很大的范围可以检查特定条件?如果是,您可以使用新范围,将要删除的特定单元格合并,最后一次删除该范围的所有行。否则,您可以像 braX 已经建议的那样继续。
-
@brax 好的,所以每当执行 if 条件时,我都会重置 rw=rw-1。但首先...我如何删除行?
-
这能回答你的问题吗? Delete a row in Excel VBA