Dim i As Long
Dim rows As Long
Dim rng3 As Range
rows = rng3.rows.Count
For i = rows To 1 Step (-1)
Run Code Online (Sandbox Code Playgroud)
有谁知道这个循环是如何工作的?我对其含义感到困惑rows To 1 Step (-1).
小智 27
从高数字到1 添加 (-1)每个迭代
注意:它正在添加因为数学逻辑中的+AND -评估为a-
如果rows = 10那么
for i = 10 to 1 step -2将意味着回环从10 to 1 减去 2从i在每个循环周期.
Debug.Print i在循环内添加一个可能会给你一个更好的线索.
注意:打开Immediate Window点击CTRL+ G或View => Immediate Window从VBE菜单栏

每个循环增加3的示例循环.
for i = 1 to 10 step 3
debug.print i
next i
Run Code Online (Sandbox Code Playgroud)

用法
当从电子表格中删除行时,主要使用后退技术.
要在实践中查看逻辑,请参阅以下内容
删除行时,通常的做法是从最后开始向后退,这样就不会跳过任何行.
Dim i As Long
Dim rows As Long
Dim rng3 As Range
rows = rng3.rows.Count
For i = rows To 1 Step (-1)
'delete row if "delete" is in column 1
If rng3.cells(i,1).Value = "delete" Then
rng3.Rows(i).EntireRow.Delete
End If
next i
Run Code Online (Sandbox Code Playgroud)