2016-04-05 18 views
0

Meine Anforderung besteht darin, durchlaufen eine VBA-Sammlung und basierend auf bestimmten Bedingung aktualisieren die nachfolgenden Datensätze in der gleichen Sammlung.Iterieren und aktualisieren dieselbe Sammlung in VBA

Zum Beispiel kann sagen, „TMasterList“ ist eine Sammlung, die insgesamt 4 Datensätze hat, während zweiten Datensatz in der folgenden Schleife verarbeitet wird, Ich brauche 3. zu aktualisieren und 4. Datensatz und dann mit der Schleife (dh Prozess fortgesetzt 3 und 4).

For Each objEachTmapping In TMasterList 


Next 

Alle Vorschläge zur Implementierung.

Antwort

0

Schleife über den Index, von den oberen Grenzen, wenn nötig:

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 

Dies setzt voraus, dass es eine Referenz in der Sammlung ist, wenn sie ein Typ nicht in situ modifiziert werden kann.

+0

sollte die Leistung ein Problem sein Ich würde die Schleife auf 'max - 2' begrenzen,' if'-Anweisungen daraus entfernen und sie direkt danach platzieren – user3598756

Verwandte Themen