我正在尝试编写一个宏,如果给定范围内的单元格 = 0,它将删除一行。我遇到的问题是,当 For Each 循环运行时,它会找到单元格并删除该行,但如果它下面的行也有一个 0,它最终会被代码跳过,因为代码已经移动到下一个范围。我正在寻找一个宏,它可以在一系列单元格中找到 0,并在该单元格范围内循环,直到该单元格大于 0。
我已经把它作为一项正在进行的工作......
Sub Pub_Clean()
Dim IRange As Range
Dim VRange As Range
Set VRange = Range(ActiveSheet.Range("b3"), ActiveSheet.Range("b3").End(xlDown))
For Each IRange In VRange
If IRange = 0 Then
IRange.EntireRow.Delete
End If
Next IRange
End Sub
最佳答案
删除时,典型的做法是从底部开始向上循环。这需要一个索引指定的循环,而不是 FOR EACH。以下是一些细节:
For I=TotalRows To 1 Step -1
Set c = Range("C" & I)
' code to check for criteria and delete if required
Next I
取自这里:
http://www.ozgrid.com/forum/showthread.php?t=56516
关于excel - 如果 Cell = 0,则对于每个循环删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364714/