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

Forumthread: Array mit Werten füllen

Array mit Werten füllen
08.04.2005 13:06:27
Christoph
Hi Leute,
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
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Array mit Werten füllen
08.04.2005 13:28:24
Boris
Hi Christoph,
z.B. so:
Option Explicit

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

Grüße Boris
Anzeige
AW: Array mit Werten füllen
08.04.2005 13:41:15
Christoph
Supi dank dir.
Kann ich die Schaltfläche auch auf ein anderes Tabellenblatt legen oder muß ich dazu den Code noch ändern?
Einfahc den Blattnamen mit angeben...
08.04.2005 15:09:17
Boris
Hi Christoph,
Option Explicit

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

Grüße Boris
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Array mit Werten füllen in Excel VBA


Schritt-für-Schritt-Anleitung

Um einen Array in Excel VBA zu füllen, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle "Einfügen" > "Modul".

  3. 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
  4. 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]
  5. 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".


Häufige Fehler und Lösungen

  • 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.


Alternative Methoden

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.


Praktische Beispiele

Hier ist ein Beispiel, wie Du die Methode in einem realen Szenario anwenden kannst:

  1. Angenommen, Du hast eine Liste von Mitarbeitern in den Zellen X6:X25.
  2. Du möchtest deren Namen in einem Array füllen und in einer MsgBox anzeigen lassen. Der oben genannte VBA-Code erfüllt diesen Zweck perfekt.

Tipps für Profis

  • Verwende Option Base 1, wenn Du den Array mit 1 als Index beginnen möchtest. Dies kann die Lesbarkeit Deines Codes verbessern.
  • Experimentiere mit verschiedenen Datentypen. Du kannst auch spezifische Datentypen wie String oder Double verwenden, um die Leistung zu optimieren.
  • Nutze die Debug.Print-Anweisung, um die Werte während der Ausführung des Makros zu überprüfen, bevor Du sie in einer MsgBox anzeigst.

FAQ: Häufige Fragen

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.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige