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

VBA-Array mit Tabellenbereich befüllen

Forumthread: VBA-Array mit Tabellenbereich befüllen

VBA-Array mit Tabellenbereich befüllen
08.08.2002 17:14:45
Andy
Hallo Gemeinde,

irgendwie hab ich wieder mal nen Black-Out, hoffentlich kann mir jemand helfen.

Ich möchte in VBA ein Array befüllen und die Werte dafür stehen
zum Beispiel in einer Tabelle von C5:H5

Wie bekomme ich die Werte daraus schnell in ein Array ?

Danke schon mal

Andy

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VBA-Array mit Tabellenbereich befüllen
08.08.2002 17:19:53
christoph
Sub Einlesen()
Dim X As Variant
X = Range("A1:F12")
MsgBox X(2, 3)
End Sub
Re: VBA-Array mit Tabellenbereich befüllen
08.08.2002 17:22:01
Hajo_Zi
Hallo Andy

Gruß Hajo

Re: VBA-Array mit Tabellenbereich befüllen
08.08.2002 17:31:38
Andy
Wie mit Klammern gepudert.
Tausend mal gelesen Range --> Array --> Range und doch nich kapiert.

Man wird doch langsam alt.

Besten Dank noch ein mal das wars was ich suchte.

Anzeige
Re: VBA-Array mit Tabellenbereich befüllen
08.08.2002 19:48:33
Hans W. Hofmann
Packen wir die Geschichte doch mal von einem anderen Standpunkt aus an. Was gibt es für einen Grund die Daten in ein Array zu schreiben. Kostet nur Speicher und Zeit!

Gruß HW

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

VBA-Array mit Tabellenbereich befüllen


Schritt-für-Schritt-Anleitung

Um ein Excel VBA-Array aus einer Tabelle zu füllen, kannst Du folgende Schritte befolgen:

  1. Öffne den VBA-Editor (ALT + F11).

  2. Füge ein neues Modul hinzu:

    • Rechtsklick auf ein Projekt im Projekt-Explorer > Einfügen > Modul.
  3. Schreibe den folgenden Code:

    Sub Einlesen()
       Dim X As Variant
       X = Range("C5:H5").Value ' Bereich anpassen
       MsgBox X(1, 1) ' Beispiel für den Zugriff auf das Array
    End Sub
  4. Führe das Makro aus (F5), um die Werte in das Array zu laden.

Mit diesem einfachen Code kannst Du ein Array füllen und die Werte aus einem Excel-Bereich nutzen. Beachte, dass der Bereich "C5:H5" entsprechend Deiner Daten angepasst werden sollte.


Häufige Fehler und Lösungen

  • Fehler: "Typen sind inkompatibel"

    • Lösung: Stelle sicher, dass Du das Array als Variant definiert hast. Bei einer Range-Zuweisung muss der Typ korrekt sein.
  • Fehler: "Index außerhalb der Grenzen"

    • Lösung: Überprüfe die Indizes, die Du im Array verwendest. Bei einem eindimensionalen Array beginne mit 1.
  • Fehler: "Bereich nicht gefunden"

    • Lösung: Kontrolliere, ob der angegebene Zellbereich korrekt ist und ob die Tabelle existiert.

Alternative Methoden

Es gibt verschiedene Möglichkeiten, ein VBA-Array zu befüllen:

  • Array direkt definieren:

    Dim myArray(1 To 5) As Variant
    myArray(1) = "Wert1"
    myArray(2) = "Wert2"
    ' usw.
  • Daten aus einer Tabelle in ein Array konvertieren:

    Dim myArray As Variant
    myArray = Application.Transpose(Range("A1:F12").Value)

Diese Methoden sind nützlich, wenn Du die Flexibilität von Arrays in VBA nutzen möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie Du ein VBA-Array befüllen kannst:

  1. Eindimensionales Array:

    Sub EinfacheArray()
       Dim myArray() As Variant
       Dim i As Integer
    
       ReDim myArray(1 To 5)
       For i = 1 To 5
           myArray(i) = Cells(i, 1).Value ' Werte aus der ersten Spalte
       Next i
    End Sub
  2. Array in Range schreiben:

    Sub ArrayToRange()
       Dim myArray(1 To 5) As Variant
       Dim i As Integer
    
       For i = 1 To 5
           myArray(i) = "Wert" & i
       Next i
    
       Range("A1:A5").Value = Application.Transpose(myArray)
    End Sub

Tipps für Profis

  • Nutze Application.Transpose, um die Dimensionen des Arrays zu ändern, wenn Du mit mehrdimensionalen Arrays arbeitest.
  • Verwende Dim x As Range, um den Bereich dynamisch zu definieren, falls sich die Daten ändern.
  • Setze auf die Verwendung von Option Explicit zu Beginn Deiner Module, um Variablenfehler zu vermeiden und den Code klarer zu gestalten.

FAQ: Häufige Fragen

1. Wie kann ich ein mehrdimensionales VBA-Array befüllen? Du kannst ein mehrdimensionales Array definieren, indem Du Dim myArray(1 To 5, 1 To 2) As Variant verwendest. Fülle es dann wie gewohnt in einer Schleife.

2. Wie kann ich Werte aus einem Array in eine Tabelle schreiben? Verwende Range("A1").Resize(UBound(myArray, 1), UBound(myArray, 2)).Value = myArray, um die Werte zurück in die Tabelle zu schreiben.

3. Was sind die Vorteile der Verwendung von Arrays im VBA? Arrays ermöglichen eine effizientere Datenverarbeitung, da Du mehrere Werte in einer einzigen Variable speichern kannst, was die Verarbeitungsgeschwindigkeit erhöht.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige