Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Array ausgeben lassen?

Array ausgeben lassen?
10.10.2006 12:05:43
Torsten
moin,
1. ist es möglich ein Array komplett ausgeben zu lassen? oder kann man nur die elemente einzeln auslesen?
weil das hier gibt mir einen Fehler :
dim k as Variant
k = Array (1,2,3)
msgbox k
2. um Array's in ein Arry zu packen muss ich doch wie foglt vorgehen (wenn richtig ist einfach ok sagen ;))
dim k as Variant
dim l as Variant
dim m as Variant
k = Array()
l = Array(1,2,3)
m = Array(4,5,6)
k(0) = l
k(1) = m
dartaus müsste folgen, dass k=((1,2,3),(4,5,6)) ist, oder?
dankeschön schonmal im vorraus....syntaxfehler dürft ihr auch beheben ;)
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array ausgeben lassen?
10.10.2006 12:20:31
Nepumuk
Hallo Torsten,
einfach so:
Dim k As Variant
Dim l As Variant
Dim m As Variant

l = Array(1, 2, 3)
m = Array(4, 5, 6)

k = Array(l, m)

Oder ohne Zwischenschritte so:
Dim k As Variant
k = Array(Array(1, 2, 3), Array(4, 5, 6))

Gruß
Nepumuk
Anzeige
AW: Array ausgeben lassen?
11.10.2006 08:55:02
Rolf
Hallo Torsten,
die Ausgabe "in einem Rutsch" geht nur bei eindimensionalen Arrays.
Gemäß Nepumuks Beispiel also
Option Explicit

Sub showArray()
Dim k As Variant
Dim l As Variant
Dim m As Variant
l = Array(1, 2, 3)
m = Array(4, 5, 6)
k = Array(l, m)
MsgBox Join(l, vbLf)
MsgBox Join(m, vbLf)
MsgBox Join(k, vbLf) 'Fehler, da Array mehrdimensional
End Sub

fG
Rolf
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Arrays in Excel VBA ausgeben


Schritt-für-Schritt-Anleitung

Um ein Array in Excel VBA auszugeben, kannst du die MsgBox-Funktion verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Deklariere das Array: Verwende Dim, um dein Array zu deklarieren.
  2. Fülle das Array: Setze Werte in dein Array mit der Array-Funktion.
  3. Nutze die Join-Funktion: Um die Werte in einer Meldungsbox auszugeben, kannst du die Join-Funktion verwenden, um das Array in einen String zu konvertieren.

Hier ist ein einfaches Beispiel:

Sub ShowArray()
    Dim k As Variant
    k = Array(1, 2, 3)
    MsgBox Join(k, vbLf) ' Gibt die Werte in einer MsgBox aus
End Sub

Häufige Fehler und Lösungen

Ein häufiges Problem beim Ausgeben eines Arrays in Excel VBA ist, dass mehrdimensionale Arrays nicht direkt mit MsgBox ausgegeben werden können. Der folgende Code führt zu einem Fehler:

Dim k As Variant
k = Array(Array(1, 2, 3), Array(4, 5, 6))
MsgBox Join(k, vbLf) ' Dies führt zu einem Fehler

Lösung: Du musst die Werte einzeln ausgeben oder das Array in eine eindimensionale Form umwandeln. Hier ist ein Beispiel, wie du das machen kannst:

Sub ShowMultiDimensionalArray()
    Dim k As Variant
    Dim i As Integer
    k = Array(Array(1, 2, 3), Array(4, 5, 6))

    Dim output As String
    For i = LBound(k) To UBound(k)
        output = output & Join(k(i), ", ") & vbLf
    Next i

    MsgBox output
End Sub

Alternative Methoden

Wenn du ein Array in Excel ausgeben möchtest, gibt es auch alternative Ansätze:

  1. Direkte Ausgabe in eine Zelle: Anstatt MsgBox zu verwenden, kannst du die Werte direkt in Zellen schreiben.

    Sub OutputToCells()
       Dim k As Variant
       k = Array(1, 2, 3)
       Range("A1").Resize(UBound(k) + 1, 1).Value = Application.Transpose(k)
    End Sub
  2. Verwendung von Debug.Print: Dies ist nützlich, um Arrays im Direktfenster auszugeben, ohne eine MsgBox zu verwenden.

    Sub DebugArray()
       Dim k As Variant
       k = Array(1, 2, 3)
       Debug.Print Join(k, ", ")
    End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele zum Ausgeben von Arrays:

  1. Eindimensionales Array:

    Sub ShowSingleDimensionalArray()
       Dim arr As Variant
       arr = Array("Apfel", "Banane", "Kirsche")
       MsgBox Join(arr, ", ")
    End Sub
  2. Mehrdimensionales Array:

    Sub ShowMultiDimensionalArray()
       Dim arr As Variant
       arr = Array(Array("Apfel", "Banane"), Array("Kirsche", "Dattel"))
    
       Dim output As String
       Dim i As Integer
       For i = LBound(arr) To UBound(arr)
           output = output & Join(arr(i), ", ") & vbLf
       Next i
    
       MsgBox output
    End Sub

Tipps für Profis

  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen.
  • Experimentiere mit der Join-Funktion, um verschiedene Trennzeichen zu verwenden, zum Beispiel vbTab für Tabulatoren.
  • Verwende die VBA-Funktion Transpose, um mehrdimensionale Arrays in eindimensionale Arrays umzuwandeln, wenn du nur eine Dimension ausgeben möchtest.

FAQ: Häufige Fragen

1. Kann ich ein mehrdimensionales Array direkt in einer MsgBox ausgeben? Nein, du kannst ein mehrdimensionales Array nicht direkt ausgeben. Du musst die Werte in einer Schleife durchlaufen und sie in einen String umwandeln.

2. Wie kann ich ein Array in eine Excel-Tabelle ausgeben? Verwende die Range-Eigenschaft, um die Werte des Arrays direkt in Zellen zu schreiben, wie im Beispiel OutputToCells gezeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige