在VBA中迭代并更新同一集合

在VBA中迭代并更新同一集合,vba,Vba,我的要求是遍历VBA集合,并基于特定的 条件更新同一集合中的后续记录 例如,假设“TMasterList”是一个总共有4条记录的集合, 当第二条记录在下面的循环中处理时, 我需要更新第3条和第4条记录,然后继续循环(即过程3和第4条) 关于如何实现它的任何建议。循环索引,检查边界(如果需要): Dim i As Long, max As Long max = TMasterList.Count For i = 1 To max TMasterList.Item(i).value =

我的要求是遍历VBA集合,并基于特定的 条件更新同一集合中的后续记录

例如,假设“TMasterList”是一个总共有4条记录的集合, 当第二条记录在下面的循环中处理时, 我需要更新第3条和第4条记录,然后继续循环(即过程3和第4条)


关于如何实现它的任何建议。

循环索引,检查边界(如果需要):

Dim i As Long, max As Long
max = TMasterList.Count

For i = 1 To max

    TMasterList.Item(i).value = Foo

    If i + 1 < max Then TMasterList.Item(i + 1).value = Bar
    If i + 2 < max Then TMasterList.Item(i + 2).value = Qux

Next
Dim i等于长,max等于长
max=TMasterList.Count
对于i=1至最大值
TMasterList.Item(i).value=Foo
如果i+1

这假设集合中存在引用,如果它是一种类型,则无法在原地修改。

如果性能有问题,我会将循环限制为
max-2
,从中删除
if
语句,并将它们放在它的后面
Dim i As Long, max As Long
max = TMasterList.Count

For i = 1 To max

    TMasterList.Item(i).value = Foo

    If i + 1 < max Then TMasterList.Item(i + 1).value = Bar
    If i + 2 < max Then TMasterList.Item(i + 2).value = Qux

Next