Collection mit Range-Objekten füllen?

06/06/2009 - 19:49 von Gilbert Mirenque | Report spam
Ich erzeuge mir eine Collection:

Dim workLayers As Collection
Set workLayers = New Collection

In einer Schleife ermittle ich mir dann, je nachdem, ein oder mehrere
Range-Objekte, die ich dieser Collection hinzufügen möchte:

Dim startLayerCell, endLayerCell As Object
Set startLayerCell = Cells(row, startIndex)
Set endLayerCell = Cells(row, endIndex)
Set workRange = Range(startLayerCell, endLayerCell)
workLayers.Add (workRange)

Doch ist es mir jetzt nicht möglich die Ranges wieder rauszuziehen aus
der Collection. Im Debugger sieht die Collection auch sehr komisch aus
[1]. Die Collection aus dem Screenshot müsste eigentlich zwei Ranges
enthalten. Die erste Range ist 9 Zellen groß und die zweite ist 13
Zellen groß. Doch im Debugger ist nur so eine komische Struktur zu
sehen. Also der weiß gar nicht mehr, dass Ranges in der Collection
enthalten sind. Dadurch kann ich die spàter dann auch nicht mehr
weiterverarbeiten. Habt ihr vielleicht 'ne Idee?

[1] http://wwwpub.zih.tu-dresden.de/~s2658050/RangeCollection.jpg
 

Lesen sie die antworten

#1 Dr. Eckehard Pfeifer
06/06/2009 - 23:03 | Warnen spam
Hallo, ich kann bei ordentlicher Deklaration keine Widersprüche entdecken:

Dim workLayers As Collection
Set workLayers = New Collection
Dim startLayerCell As Range
Dim endLayerCell As Range
Set startLayerCell = Cells(1, 1)
Set endLayerCell = Cells(1, 2)
Dim workrange As Range
Set workrange = Range(startLayerCell, endLayerCell)
workLayers.Add workrange
Dim r As Range
Set r = workLayers(1)

Die Collection ist eine von Ranges, das sieht man hier bei Item1. Dessen
Bestandteile sind dann die einzelnen Zellen. Und das r ist in der Tat wieder
ein Range.

MfG EP
Entwicklung - Beratung - Training (www.dr-e-pfeifer.net)
XL-Maxibuch (ISBN: 3-86645-231-4)
Microsoft Office 2007-Programmierung (ISBN 3-86645-415-5)

Ähnliche fragen