Ich weiß, dass ich einfach eine Sammlung von Bereichen verwenden könnte, aber ich dachte, ich könnte die vorhandenen Funktionen des Range-Objekts nutzen, um einzelne Elemente in einer bestimmten Reihenfolge auszuwählen. Auf diese Weise habe ich weniger Objekte zu verwalten.So wählen Sie einzelne Zellen aus einem Bereich in einer angegebenen Reihenfolge mit einer Indexnummer aus?
Zum Beispiel habe ich meinen Bereich angegeben als:
Set myrange = ActiveSheet.Range("C11,C9,C7,D6,F6,H6,I7,I9,I11")
. Beachten Sie, dass diese Zellen nicht unbedingt in einer offensichtlichen Reihenfolge oder Muster sind.
Wenn ich etwas wie eine For each
Schleife mache, kann ich leicht durch diese Zellen in dieser bestimmten Reihenfolge. Ich möchte in der Lage sein, einzelne Objekte aus der Liste (in dieser Reihenfolge) nach Belieben auswählen zu können, zum Beispiel die vierte Zelle aus meiner Liste auszuwählen.
Ich habe festgestellt, dass das Objekt Range.Areas
mich ziemlich nah an das, was ich bin, aber wenn ich später zurück und zu meinem Bereich hinzufügen, so etwas wie Union(myrange, activesheet.Range("C10"))
meine ersten 3 Zellen sind jetzt in einem einzigen Bereich verschmolzen. Es zeigt nicht dieselbe Funktionalität, wenn ich C10 in meiner ursprünglichen Liste deklarieren würde.
Also meine Frage ist entweder: Gibt es eine andere Möglichkeit, einzelne Zellen nach Index auszuwählen; ODER gibt es eine "Union" -ähnliche Funktion, die Zellen diskret hält, ohne Bereiche zu verschmelzen.
Die idiomatische und performante Art, Zellen zu iterieren, ist mit einer 'For Each'-Schleife gemeint, wobei' Range' eine Sammlung von Objekten ist. Nicht klar, warum die Reihenfolge überhaupt wichtig ist. –