Arrays mit drei Spalten füllen

Bild

Betrifft: Arrays mit drei Spalten füllen
von: Albert
Geschrieben am: 12.10.2015 16:32:39

Hallo zusammen,
ich hab nachfolgenden Code zum Füllen von einem einfach Array. Das hab ich
jetzt versucht umzubauen, damit es drei Spalten hat. Nun hängts aber aus...
For ix = 0 To UBound(CatchDoubles)
If rngZelle = CatchDoubles(ix, 0, 0) Then
'Name steht schon im Array und wird übersprungen
GoTo Weiter
End If
Next ix

'Array vergrößern
ReDim Preserve CatchDoubles(0 To (UBound(CatchDoubles)), 0, 0) As String
'Informationen
For c = 0 To 2
If c = 0 Then CatchDoubles(UBound(CatchDoubles), UBound(CatchDoubles), c) = .Cells(rngZelle.Row, 13).Value
If c = 1 Then CatchDoubles(UBound(CatchDoubles), UBound(CatchDoubles), c) = .Cells(rngZelle.Row, 5).Value
If c = 2 Then CatchDoubles(UBound(CatchDoubles), UBound(CatchDoubles), c) = .Cells(rngZelle.Row, 16).Value
Next c
Ich hab keine Ahnung wie das funktionieren soll. Hab mir schon bei Mama Google
einige Beispiele angeschaut, aber das sind polnische Dörfer für mich.
Gibt's vielleicht eine Erklärung für Dummies wie mich?
Besten Dank für eure Hilfe und Geduld.
Gruß
A.

Bild

Betrifft: AW: Arrays mit drei Spalten füllen
von: Michael
Geschrieben am: 12.10.2015 18:33:09
Hi Albert,
ich habe auch keine Ahnung, wie das funktionieren soll.
Lade uns doch bitte mal ne Beispieldatei hoch.
Nur so viel vorab: die untere Schleife läßt sich durch ein weiteres, kleines Array deutlich vereinfachen:

Dim spalte(2) as long
spalte(0)=13
spalte(1)=5
spalte(2)=16
' ...
For c = 0 To 2
CatchDoubles(UBound(CatchDoubles), UBound(CatchDoubles), c) = _
   .Cells(rngZelle.Row, spalte(c)).Value
Next c
Insgesamt würde ich aber die ganze Vergleicherei ohne Zugriffe aufs Tabellenblatt lösen:
a) mit einem scripting.dictionary: das ist eine Speicherstruktur, die Doppelte gar nicht erst aufnimmt
Einen kurzen Kurs, den Du mit "VBA gut" in zwei Stunden durchhast, findest Du hier:
http://www.snb-vba.eu/VBA_Dictionary_en.html
b) alle Werte erst einmal in ein Array laden und dort doppelte rauswerfen
Um wieviele Werte geht es denn?
Schöne Grüße,
Michael

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Arrays mit drei Spalten füllen"