【问题标题】:Decrement in for each loop每个循环递减
【发布时间】:2014-09-10 13:02:54
【问题描述】:

是否可以在 VBA for Excel 中的每个循环中递减?

我有这样的代码:

Sub Makro1()

Dim rng As Range
Dim row As Range
Dim cell As Range

Set rng = Range("B1:F18")

For Each row In rng.Rows
    If WorksheetFunction.CountA(row) = 0 Then
        row.EntireRow.Delete
        'Previous row
    End If
Next row

End Sub

我想退后一步评论声明。有可能吗?

【问题讨论】:

  • 为什么不使用常规的 for 循环,您可以按照自己的方式修改光标?
  • 你不能。正如@X.L.Ant 所说,您必须使用For...Next 循环,然后向后循环。
  • 好的。我会改变它。谢谢!

标签: excel foreach vba


【解决方案1】:

没有。

您必须使用For...Next 循环并向后退一步:

Dim i As Long
For i = rng.Rows.Count To 1 Step -1
    Set row = rng.Rows(i)
    If WorksheetFunction.CountA(row) = 0 Then
        row.EntireRow.Delete
        'Previous row
    End If
Next i

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 2014-11-17
    • 2017-03-02
    • 1970-01-01
    • 2021-07-01
    • 2014-10-05
    • 2017-09-28
    • 2012-07-18
    • 1970-01-01
    相关资源
    最近更新 更多