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(使用前将#替换为@)