For Each 循环的逆序

2024-03-18

VB 最强大的功能之一是能够循环访问集合中的对象而不引用索引 -for each loop.

我发现它非常有用,只想从集合中删除对象。

当从预定义对象(例如电子表格上的行)中删除对象时,如果我使用索引并从最大的对象开始并返回到第一个,则代码会更简单。 (使用迭代器的步骤-1)(否则需要一个偏移量,因为一旦删除活动对象,For every 会将枚举器指针移回到前一个对象)

eg.

For intA = 10 to 1 step -1 
    ' ...
Next

使用 For Each | 时怎么样?下一个 例如。

For each rngCell in Selection.Cells
    ' ...
Next

我怎样才能循环向后使用for each循环语法?


使用 foreach 循环语法不可能向后循环。

As an 选择你可以使用For i = a To 1 Step -1 loop:

Sub reverseForEach()
    Dim i As Long, rng As Range

    Set rng = ActiveSheet.Range("A1:B2")

    For i = rng.Cells.Count To 1 Step -1

        Debug.Print rng.item(i).Address
        ' Or shorthand rng(i) as the Item property 
        ' is the default property for the Range object.
        ' Prints: $B$2, $A$2, $B$1, $A$1

    Next i

End Sub

这适用于所有具有 Item 属性的集合。例如工作表、区域或形状。

注意:在 Range 对象上使用时的循环顺序是从右到左,然后向上。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

For Each 循环的逆序 的相关文章

随机推荐