HERBERS Excel-Forum - das Archiv
Zweidimensionaler Array
Sibylle

Hallo,
ich suche nach einem anschaulichen Beispiel für die Verwendung von
a. einem zweidimensionalen
b. einem dreidimensionalen Array
Dieses Teilgebiet bereitet mir noch Verständnisprobleme
Gruß
Sibylle

AW: Zweidimensionaler Array
Daniel

Hi
die Zellen eines Excel-Tabellenblatt bilden ein zweidimensionales Array,
1. Dim: Zeile
2. Dim: Spalte
die Zellen einer Excel-Arbeitsmappe bilden ein dreidimensionales Array:
1. Dim: Zeile
2. Dim: Spalte
3. Dim: Tabellenblatt
oder um ein ganz anderes Beispiel zu wählen:
ein Stundenplan einer Schule:
1. Dim: Stunde
2. Dim: Tag
3. Dim: Klasse
als beispiel:
Stundenplan(1. Stunde, Montag, Klasse 1) = Deutsch
Stundenplan(3. Stunde, Mittwoch, Klasse 3) = Mathematik
das kann man sich auch schön vorstellen, wie die Stundenpläne der einzelnen Klassen beim Schulleiter in einer Mappe übereinander liegen und so die Klassen die 3. Dimension bilden.
Gruß, Daniel
AW:Danke
Sibylle

Hallo Daniel,
vielen Dank für Deinen Beitrag,
Das Beispiel Stundenplan ist sehr anschaulich, sorgt für Verständnis.
Danke.
Gruß
Sibylle
AW: Zweidimensionaler Array
Nepumuk

Hallo,
ein zweidimensionales Array ist wie eine Exceltabelle. Du hast z.B. oben verschiedene Namen und nach unten Tage. Dein Array in VBA wäre der gelbe Bereich:
ABCD
1Datum/NameMaierHuberMüller
201.01.2009104
302.01.2009223
403.01.2009469
504.01.2009062
605.01.20098148
706.01.20095812
807.01.2009469
908.01.2009346
1009.01.20099167

Jetzt stell dir vor, du hast pro Name und Datum mehrere Einträge. In der Mappe wären das mehrere Tabellen mit derselben Struktur, oder die Daten befinden sich in mehreren Mappen mit derselben Struktur. Du willst die Daten aber nicht addieren, da sie sich z.B. auf verschiedene Artikel beziehen. Du hast dann in VBA entweder mehrere zweidimensionale Arrays, oder ein dreidimensionales. Bei der die dritte Dimension jeweils einen Artikel darstellt. Das ganze kannst du dir wie einen Würfel vorstellen.
Da es in VB bis zu 60 Dimensionen geben kann, hört bei der dritten Dimension die menschliche Vorstellungskraft in den meisten Fällen auf.
Außerdem würde ich nicht mit mehr als zwei Dimensionen arbeiten. Für die weiteren Dimensionen würde ich dann einen benutzerdefinierten Datentyp anlegen. Das ist wesentlich übersichtlicher.
Gruß
Nepumuk
AW: Ach so - und noch eine Frage dazu
Sibylle

Hallo Nepumuk,
Deine Hinweise sind allererste Sahne. Der Groschen ist gefallen. Vielen Dank.
Mit benutzerdefiniertem Datentyp meinst Du vermutlich den Befehl TYPE?
Und nachdem der Datentyp feststeht, darauf aufbauend einen Array bilden?
Ein kurzes "Ja" oder "Nein" würde genügen, um sicher zu sein, dass Deine Angaben richtig verstanden wurden.
Gruß
Sibylle
AW: Ach so - und noch eine Frage dazu
Nepumuk

Hallo Sibylle,
JA. Die Type-Anweisung die sich auch verschachtel lässt.
Ich hab mal was zu Arrays geschrieben, da findest du im 2. Teil auch was zu benutzerdefinierten Datentypen und Arrays daraus:
Teil1: http://www.office-loesung.de/ftopic243735_0_0_asc.php
Teil2: http://www.office-loesung.de/ftopic251835_0_0_asc.php
Teil3: http://www.office-loesung.de/ftopic255180_0_0_asc.php
Gruß
Nepumuk
AW: Tausend Dank
Sibylle

Hallo Nepumuk,
das ist ein guter Tag für mich.
Genau darüber wollte ich Details nachlesen können.
Dein Tipp trifft ins Schwarze.
Wenn man denkt, so etwas könnte es vielleicht geben, dann hilft die VBA-Hilfe oftmals nicht weiter...
oder man versteht diese manchmal nicht ...
Umso wichtiger ist die Möglichkeit bei kompetenten Forumsteilnehmern Rat einholen zu können. Super.
Vielen Dank.
Einen schönen Sonntag.
Gruß
Sibylle