Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
444to448
444to448
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Ausgabe von dynamische Arrays in Zellen

Ausgabe von dynamische Arrays in Zellen
28.06.2004 16:13:07
dynamische
Ich denke, dass mein Problem eigentlich zu den Basics gehört, trotzdem wird es in dem Buch, dass ich mir zur VBA-Programmierung unter Excel gekauft habe nicht erwähnt.
Das Problem:
Ich möchte einen dynamischen Array in ein Tabellenblatt auslesen, so dass jedes Element des Arrays in einer eigenen Zelle steht.
In dem Buch wird das keyword "Set" als einziger Weg beschrieben, um Variablen auszulesen. Damit habe ich es bis jetzt jedoch nur geschafft eindimensionale Arrays in eine Excel-Zeile auszulesen. Also ungefähr so etwas:
Dim DatenFeld As Variant
DatenFeld = Array(0, 0, 0)
Set DatenFeld = Application.ActiveWorkbook.ActiveSheet.Range("A4:C4")
For i = 1 To 3
DatenFeld(i) = 0
Next
Ich würde jedoch gerne einen Array der Form Datenfeld(6,n) in ein 6-spaltiges Tabellenblatt auslesen. Meine Versuche, das mit Schleifen zu dynamisieren, sind bisher fehlgeschlagen.
Wie macht man denn so etwas am besten? Vielen Dank im voraus für die Hilfe :).

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgabe von dynamische Arrays in Zellen
dynamische
Wie kommen die Daten in dein Array?
Ulf
AW: Ausgabe von dynamische Arrays in Zellen
28.06.2004 16:23:13
dynamische
Die Daten stammen alle aus einer Berechnung, deren Algorythmus ich jedoch noch nicht vollständig in VBA umgesetzt habe. Auf jeden Fall werden Rund 3000 Fälle berechnet, die dann mittels einer mehrfach verschachtelten Schleife in den Array geladen werden.
Ist es in VBA/Excel wichtig für die Ausgabe, wie die Daten in den Array gekommen sind?!!
AW: Ausgabe von dynamische Arrays in Zellen
dynamische
Ja, das ist relevant dafür, wie die Daten an eine Tabelle übergeben werden können.
Du kannst z.B. anhand von LBound und UBound der Arraydimensionen einen Zellbereich
definieren, dem du den Array in einem Zug übergibst.
Schema:
Dim Bereich as range
set Bereich = A1:d20
Bereich = DeinArray
Ulf
Anzeige
AW: Ausgabe von dynamische Arrays in Zellen
28.06.2004 16:49:42
dynamische
Ahja ... danke, das erweitert meinen Horizont schon ein bisschen :).
Wie ist das denn dann. Kann ich erst den Array durch meine Berechnungen erzeugen und ihm dann mittels set einen Bereich zuweisen (vorher weis ich wohl noch gar nicht wie groß der Array wird?!).
AW: Ausgabe von dynamische Arrays in Zellen
dynamische
Hallo,
vielleicht hilft Dir folgender Code weiter:
Dim Daten(1 To 6, 1 To 10) As Integer, x As Integer, y As Integer
For x = LBound(Daten, 1) To UBound(Daten, 1)
For y = LBound(Daten, 2) To UBound(Daten, 2)
Daten(x, y) = x * y
Next y
Next x
Range(Cells(1, 1), Cells(UBound(Daten, 2) - LBound(Daten, 2) + 1, UBound(Daten, 1) - LBound(Daten, 1) + 1)) = _
Application.WorksheetFunction.Transpose(Daten)
Gruß
Gerd
Anzeige
AW: Ausgabe von dynamische Arrays in Zellen
28.06.2004 16:55:46
dynamische
Super, danke dir!!! Ich bin nur gerade noch am Durchsteigen der langen Argumentenkette von Range. Da ich die meisten Funktionen noch nicht kenne, muss ich die immer einzeln nachschlagen. Ich meld mich aber noch mal, wenn ich es geschafft habe :).
AW: Ausgabe von dynamische Arrays in Zellen
28.06.2004 17:15:28
dynamische
Kann es sein, dass du ab Range nur nach angedeutet hast, wie die Sache weitergehen soll (bitte nicht lachen wenn ich mich selten doof anstelle)? Also ich verstehe sehr wohl, dass da der Bereich dynamisch angegeben wird, aber mit der Syntax komme ich nicht klar?!
Und was genau macht die Methode Transpose? Die wird weder in meinem Buch noch in meiner Excel Hilfe erwähnt.
Anzeige
AW: Ausgabe von dynamische Arrays in Zellen
dynamische
Hallo,
Transpose ist der englische Name der Arbeitsblatt-Matrix-Funktion MTRANS.
Das Beispiel ist so komplett, da ist nichts angedeutet. Ubound(Daten, 1) liefert den oberen Index der ersten Dimension des Arrays Daten, Ubound(Daten, 2) für die zweite Dimension. Lbound liefert jeweils den unteren Index. Ubound-Lbound+1 ist die Anzahl der Elemente der jeweiligen Dimension. In Verbindung mit der Transpose-Methode wird die erste Dimension des Arrays zeilenweise und die zweite Dimension spaltenweise in den Bereich geschrieben. Ohne Transpose würde die erste Dimension spaltenweise geschrieben.
Gruß
Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige