gpt4 book ai didi

vba - For Each 循环的逆序

转载 作者:行者123 更新时间:2023-12-01 16:37:06 25 4
gpt4 key购买 nike

VB 最强大的功能之一是能够循环访问集合中的对象,而无需引用索引 - foreach 循环。

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

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

例如。

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

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

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

如何使用 foreach 循环语法向后循环?

最佳答案

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

作为替代方案,您可以使用For i = a To 1 Step -1循环:

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 对象上使用时的循环顺序是从右到左,然后向上。

关于vba - For Each 循环的逆序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24358183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com