ich möchte einen Array F1 mit Werten aus dem Bereich X6 - X25 im Arbeitsblatt Arbeitszeiten füllen und die Werte über eine MsgBox ausgeben.
Habt ihr ne Idee?
Gruß
Christoph
Sub array_fuellen_und_ausgeben()
Dim F1 As Variant
Dim str As String
Dim i As Integer
F1 = [x6:x25]
For i = LBound(F1) To UBound(F1)
str = str & Application.Index(F1, i, 1) & Chr(10)
Next i
MsgBox str, , "Ausgabe..."
End Sub
Sub array_fuellen_und_ausgeben()
Dim F1 As Variant
Dim str As String
Dim i As Integer
F1 = [Tabelle1!x6:x25]
For i = LBound(F1) To UBound(F1)
str = str & Application.Index(F1, i, 1) & Chr(10)
Next i
MsgBox str, , "Ausgabe..."
End Sub
Um einen Array in Excel VBA zu füllen, kannst Du die folgenden Schritte befolgen:
Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".
Kopiere den folgenden Code in das Modul:
Sub array_fuellen_und_ausgeben()
Dim F1 As Variant
Dim str As String
Dim i As Integer
F1 = [X6:X25] ' Bereich anpassen
For i = LBound(F1) To UBound(F1)
str = str & Application.Index(F1, i, 1) & Chr(10)
Next i
MsgBox str, , "Ausgabe..."
End Sub
Anpassen des Arbeitsblatts: Wenn Du die Werte aus einem anderen Tabellenblatt holen möchtest, passe die Zeile F1 = [X6:X25] wie folgt an:
F1 = [Tabelle1!X6:X25]
Führe das Makro aus: Um das Makro zu testen, gehe zurück zu Excel, drücke ALT + F8, wähle das Makro array_fuellen_und_ausgeben aus und klicke auf "Ausführen".
Fehler 1: "Variable nicht definiert"
Stelle sicher, dass Du Option Explicit am Anfang Deines Moduls eingefügt hast. Dies hilft, Fehler bei der Variablen-Deklaration zu vermeiden.
Fehler 2: MsgBox zeigt keinen Text an
Überprüfe, ob der Bereich X6:X25 tatsächlich Werte enthält. Leere Zellen führen dazu, dass die MsgBox keine Ausgabe hat.
Falls Du nicht mit VBA arbeiten möchtest, kannst Du auch Formeln verwenden, um Werte in einem Array zu aggregieren. Eine Möglichkeit ist die Verwendung der TEXTJOIN-Funktion in Excel (ab Excel 2016):
=TEXTJOIN(CHAR(10), TRUE, X6:X25)
Diese Formel kombiniert alle Werte aus dem Bereich X6:X25 und trennt sie mit einem Zeilenumbruch.
Hier ist ein Beispiel, wie Du die Methode in einem realen Szenario anwenden kannst:
X6:X25. Option Base 1, wenn Du den Array mit 1 als Index beginnen möchtest. Dies kann die Lesbarkeit Deines Codes verbessern.String oder Double verwenden, um die Leistung zu optimieren.Debug.Print-Anweisung, um die Werte während der Ausführung des Makros zu überprüfen, bevor Du sie in einer MsgBox anzeigst.1. Kann ich den Array auch aus einer anderen Arbeitsmappe füllen?
Ja, Du kannst einen Bereich aus einer anderen Arbeitsmappe einfügen, indem Du den Arbeitsmappen-Namen und den Blattnamen angibst, z. B. F1 = [WorkbookName.xlsx!Tabelle1!X6:X25].
2. Wie kann ich den Array füllen, ohne VBA zu verwenden?
Du kannst die Funktion TEXTJOIN verwenden, um Werte aus einem Bereich zu aggregieren und in einer Zelle anzuzeigen, ohne VBA zu nutzen.
3. Funktioniert das nur in Excel 2016?
Die Funktion TEXTJOIN ist in Excel 2016 und später verfügbar. Ältere Versionen unterstützen diese Funktion nicht.