Array aufteilen
#1
Hallo wertes Forum,

ich habe mal wieder ein Frage, wie ich etwas am Besten mache...

Z.B. habe ich ein Array mit 100 Datensätzen. Dieses will ich nach einigen Kriterien prüfen und auf 3 Arrays aufteilen.
Ich bin mir unschlüssig, wie ich die neuen Array dimensioniere, da ein Array ja vor dem Befüllen passend dimensioniert werden sollte.
  • Lege ich meine 3 Arrays für je 100 Einträge an? Wie bekomme ich es dann hinterher wieder "geschrumpft" auf die notwendige Größe?
  • Prüfe ich meine 100 Datensätze und zähle, wie häufig jedes Array befüllt wird, und dimensioniere es mit diesen Werten? Anschlißend müsste ich das Ganze nochmals durchlaufen, um die Arrays nach dem selben Prinzip zu füllen. Ist irgendwie doppelt gemoppelt...
  • Lege ich meine 3 Arrays für z.B. 30 Einträge an und erweitere mit ReDim bei Bedarf um jeweils 10? Wie schrumpfe ich dann wieder auf die notwendige Größe?

Die 100 Datensätze sind nur ein Beispiel, in der Realität sind es einige 2000-3000 Datensätze.

Vielen Dank für Eure Tipps,
Lutz
Antworten Top
#2
Möglichkeit 4: Du verwendest gar keine Arrays, sondern Collections
https://excelmacromastery.com/excel-vba-collections/

Während ein Array eine statische Datenstruktur ist, ist eine Collection eine dynamische. Da musst Du nix dimensionieren.
Antworten Top
#3
Hallo Zwenn,

habe leider ein 2-dimensionales Array ('tschuldigung, hab ich vergessen zu erwähnen...).

Gruß,
Lutz
Antworten Top
#4
Hallo Lutz,

wenn es doch nur 100 Elemente sind, dann lege doch 3 Arrays an. Dimensioniere diese mit Redim
auf je 100 Elementen und schrumpfe sie danach mit Redim Preserve auf die tatsächliche Größe (du hast zum befüllen sicherlich eine Laufvariable mit den tatsächlichen Anzahlen der Elemente ...)

Du musst nur beachten, dass Du bei 2-dimensionalen Arrays nur die letzte Dimension neu dimensionieren kannst!
Gruß
Michael
Antworten Top
#5
Michael hat Dir eine Möglichkeit mit Arrays aufgezeigt. Ich weiß ja nicht, wie Du Dein 2D Array auf 3 2D Arrays aufteilen willst (ganze Zeilen? ganze Spalten?). Aber Du kannst als Element einer Collection auch eine weitere Collection nehmen. Kommt das Gleiche bei raus, nur ohne feste Grenzen. Da Dein genauer Anwendungsfall unbekannt ist, kann man da eigentlich nicht viel mehr zu sagen.
Antworten Top
#6
Hi,

die Antworter tappen mal wieder im Dunklen, ich tue mal einen anderen Schuss ins Blaue:

woher kommt dein Array mit den 100 Einträgen? Aus einer Tabelle vmtl.

Nutze in deiner Quelltabelle den Spezialfilter und kopiere das Filtrat in eine weitere Tabelle, lese von dort dein Spezielarray(1-3)  ein.

Oder nutze dafür z.B. PQ oder den anderen neumodischen Krams. Smile)

VG Juvee
Antworten Top
#7
Es ist nur Raterei: welche Daten enthält das Array ?, Woher stamme diese Array ? Nach welche Kriterien sollte das Array 'gesplittett werden? usw. usw
Zeige mal, illustriere mal,....
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#8
Hallo Lutz,

hier gibt es einige Hinweise dazu: Felder - Arrays (3) - Redim und Redim Preserve

Gruß Uwe
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste