Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Variablennamen dynamisch erstellen?

Forumthread: Variablennamen dynamisch erstellen?

Variablennamen dynamisch erstellen?
24.08.2005 21:41:06
voicefreak
Hallo! Ich möchte in VBA den Namen von Variablen dynamisch mit einer Schleife erzeugen, um die Werte nacheinander abzufragen. Leider fehlt mir dazu die genaue Schreibweise.
Hat jemand eine Idee, wie man Variablennamen ähnlich wie Strings dynamisch zusammensetzen kann, damit die WERTE von g1 bis g6 mittels Schleife nacheinander angezeigt werden und nicht wie hier die STRINGS "g1", "g2", etc.?
Siehe auch Beispielcode unten
Vielen Dank - Euer Voicefreak.
Hier mein Beispielcode:
Sub ZU_VIELE_VARIABLEN()
' Problem: Variablennamen zusammensetzen.
' Wie geht das?
' So wie hier versucht, leider funktionierts so nicht.
' Es werden nur Strings "g1" "g2" etc. und keine WERTE der Variablen angezeigt
' Hilfe !!!
g1 = 143
g2 = 232
g3 = 0
g4 = 23
g5 = 12
g6 = ""
For n = 1 To 6

MsgBox ("g" & n)

Next
Exit Sub
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Variablennamen dynamisch erstellen?
24.08.2005 21:59:51
Uduuh
Hallo,
das ist nicht möglich. Nutze Datenfelder z.B. g(1), g(2) etc. die kannst du dann durchlaufen.
for i= 0 to ubound(g)
msgbox g(i)
next i
Gruß aus’m Pott
Udo

AW: Variablennamen dynamisch erstellen?
24.08.2005 22:00:44
Kay
Hallo voicefreak
Probiere das mal:

Sub ZU_VIELE_VARIABLEN()
Dim g(10)
Dim n As Variant
g(1) = 143
g(2) = 232
g(3) = 0
g(4) = 23
g(5) = 12
g(6) = ""
For n = 1 To 6
MsgBox (g(n))
Next
End Sub

Gruß
Kay
Anzeige
AW: Variablennamen dynamisch erstellen?
25.08.2005 13:02:17
voicefreak
Hallo Ihr beiden!
Funktioniert toll! Jetzt weiß ich endlich, wozu diese komischen Arrays nütze sind ;-)
Wieder was dazugelernt.
Danke für Eure Hilfe. Ihr seid grossartig!
Euer Voicefreak
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Variablennamen in VBA erstellen


Schritt-für-Schritt-Anleitung

Um in VBA dynamische Variablennamen zu erstellen, ist es am besten, Arrays zu verwenden. So kannst du Werte speichern und in einer Schleife darauf zugreifen. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Deklariere ein Array: Anstatt einzelne Variablen wie g1, g2 usw. zu verwenden, deklariere ein Array.

    Dim g(6) As Variant
  2. Werte zuweisen: Weise den einzelnen Indizes des Arrays Werte zu.

    g(1) = 143
    g(2) = 232
    g(3) = 0
    g(4) = 23
    g(5) = 12
    g(6) = ""
  3. Durchlaufe das Array: Verwende eine Schleife, um die Werte nacheinander anzuzeigen.

    For n = 1 To 6
       MsgBox (g(n))
    Next n
  4. Code zusammenfügen: Dein vollständiger Code sollte so aussehen:

    Sub ZU_VIELE_VARIABLEN()
       Dim g(6) As Variant
       g(1) = 143
       g(2) = 232
       g(3) = 0
       g(4) = 23
       g(5) = 12
       g(6) = ""
       For n = 1 To 6
           MsgBox (g(n))
       Next n
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Einzelne Variablen werden nicht erkannt.

    • Lösung: Verwende ein Array anstelle von individuellen Variablen. So kannst du problemlos durch die Werte iterieren.
  • Fehler: Der Zugriff auf nicht existierende Indizes.

    • Lösung: Stelle sicher, dass die Schleife die korrekten Indizes verwendet (z.B. von 1 bis 6).

Alternative Methoden

Eine weitere Methode, um Werte dynamisch zu speichern und zu bearbeiten, ist die Verwendung von Collection oder Dictionary Objekten. Diese ermöglichen dir, Schlüssel-Wert-Paare zu speichern und sind besonders nützlich, wenn du flexibel mit Daten arbeiten möchtest.

Beispiel mit einer Collection:

Sub BeispielMitCollection()
    Dim col As New Collection
    col.Add 143, "g1"
    col.Add 232, "g2"

    Dim i As Variant
    For Each i In col
        MsgBox (i)
    Next i
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele, um die Verwendung von Arrays in VBA zu verdeutlichen:

  • Speichern von Testergebnissen: Du kannst ein Array verwenden, um mehrere Testergebnisse zu speichern und später auszuwerten.

  • Dynamische Erstellung von Diagrammen: Mit Arrays kannst du Datenpunkte für Diagramme sammeln und dann dynamisch Diagramme erstellen.

Sub DiagrammDaten()
    Dim ergebnisse(1 To 5) As Double
    ergebnisse(1) = 10.5
    ergebnisse(2) = 12.0
    ergebnisse(3) = 15.3
    ergebnisse(4) = 8.2
    ergebnisse(5) = 11.4
    ' Diagrammcode hier...
End Sub

Tipps für Profis

  • Verwende Option Explicit: Dies zwingt dich, alle Variablen zu deklarieren und hilft, Fehler zu vermeiden.

  • Nutze mehrdimensionale Arrays: Diese sind nützlich, wenn du mehrere Werte in einer Struktur speichern möchtest, z.B. für Matrizen.

  • Debugging: Verwende Debug.Print, um Werte während der Laufzeit zu überprüfen, anstatt sie in MsgBoxen anzuzeigen.


FAQ: Häufige Fragen

1. Kann ich auch Strings in einem Array speichern?
Ja, du kannst Arrays für verschiedene Datentypen verwenden, einschließlich Strings.

2. Was ist der Unterschied zwischen einem Array und einer Collection?
Arrays sind festgelegt in der Größe, während Collections dynamisch wachsen können und mehr Flexibilität bieten.

3. Wie kann ich die Größe eines Arrays dynamisch ändern?
Du kannst das ReDim-Statement verwenden, um die Größe eines Arrays während der Laufzeit zu ändern. Achte darauf, Preserve zu verwenden, um die bestehenden Werte beizubehalten.

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