我要检查单元格(“ C”)是否不包含日期或为空以删除特定行。我的代码并没有删除所有详细信息行,并且对于行数(138)似乎太慢了。
lastrow = pertes.Cells(pertes.Rows.count, "A").End(xlUp).Row
For i = 2 To lastrow
If Not IsDate(pertes.Cells(i, 3).Value) Or IsEmpty(pertes.Cells(i, 3).Value) Then
pertes.Rows(i).Delete
End If
Next i
答案 0 :(得分:2)
如果您一一删除或添加行,则循环必须向后:
Promise.all
否则删除将更改行数,因此循环计数错误。
要使其更快,您可以使用For i = lastrow To 2 Step -1
收集一定范围内必须删除的所有行,然后最后一次将其全部删除。这样更快,因为每个删除操作都会花费时间,并且将操作数量减少到1。
Union()
请注意,这里我们不需要向后循环,因为我们在循环后 一次删除了所有行。