2016-04-05 16 views
0

私の要件は、VBAコレクションを反復することです。特定の 条件に基づいて、同じコレクション内の後続のレコードを更新します。例えばVBAで同じコレクションを繰り返して更新する

は「TMasterListは」私は3番目と4番目のレコードを更新して、ループ(すなわちプロセスを継続する必要がある第二レコードは、以下のループで処理されますしながら、4、レコード、 の合計を持って集まり、 であると言うことができます3および4番目)。

For Each objEachTmapping In TMasterList 


Next 

どのように実装するかに関する提案。必要に応じて境界を確認する指標を超える

答えて

0

ループは、:

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 

これは、そのタイプは、それがその場で変更することができない場合は、コレクション内の参照があることを前提としています。

+0

は性能が問題になるはずです。私はループを 'max - 2'に制限し、' if'ステートメントをそれから削除し、直後に配置します – user3598756

関連する問題