Microsoft Excel

Herbers Excel/VBA-Archiv

Variable mit Schleife befüllen | Herbers Excel-Forum


Betrifft: Variable mit Schleife befüllen von: Mathias
Geschrieben am: 13.06.2009 17:30:49

Hallo,

ich möchte mittels For-Next Schleife elf verschiedene Variablen belegen. Die Variablen unterscheiden sich alle nur in der Endung (Bsp.: strTest1, strTest2, strTest3,...).

Hier mein Beispiel

Dim bZähler As Byte
Dim strTest1, strTest2, strTest3, strTest4, _
strTest5, strTest6, strTest7, strTest8, _
strTest9, strTest10, strTest11 As String


For bZähler = 1 To 2
'1. bis 11. Person durchlaufen
'g_strAlternativeText wird nach Auswertung der Alternative befüllt
FillStringFromAlternative frmStart.Controls("cboEmpfaenger" & bZähler)


'Auswertung von g_strAlternativeText an örtliche Variable übergeben
strTest(bZähler) = g_strAlternativeText
Next



Die Auswertung der Alternative klappt wunderbar, deshalb habe ich diese Prozedur und die Deklaration von g_strAlternativeTest hier auch nicht abgebildet. Allerdings kann VBA "strTest(bZähler)" nicht so auswerten, wie ich mir das wünsche. Stattdessen erhalte ich den Fehler: Fehler beim Kompilieren: Sub oder Function nicht definiert.

Ich möchte damit aber gar keine Sub oder Function aufrufen, sondern meine verschiedenen Variablen strTest & bytZähler durchlaufen.
Ich hab das schon auf verschiedenen Weisen probiert, komme aber nie auf ein akzeptables Ergebnis.

Könnt ihr mir helfen?

Gruß
Mathias

  

Betrifft: ARRAY-Variable verwenden von: NoNet
Geschrieben am: 13.06.2009 19:14:55

Hallo Mathias,

siehe meine Antwort hier : Es ist fast haargenau der gleiche Fall :

https://www.herber.de/forum/messages/1080728.html

Übrigens : Mit Deiner DIM-Anweisung wird nur die letzte Variable als STRING deklariert, alle anderen Variablen als VARIANT, da VBA - anders als andere BASIC-Dialekte - diese Typendeklaration nicht auf alle anderen Variablen der gleichen Befehlszeile übernimmt. In VBA muss der Typ für jede einzelne Variable separat angegeben werden !

Gruß, NoNet


  

Betrifft: Dank ARRAY Problem gelöst von: Mathias
Geschrieben am: 13.06.2009 21:21:59

Hallo NoNet,

zwischenzeitlich habe ich das hinbekommen! Meine Lösung, die auch ein Array zum Gebrauch hat, sieht so aus:

For bZähler = 1 To 2
'1. bis 2. Person durchlaufen
FillStringFromAlternative frmStart.Controls("cboEmpfaenger" & bZähler)
'Auswertung an örtliche Variable übergeben
strEmpfaenger(bZähler) = g_strAlternativeText
Next



Beiträge aus den Excel-Beispielen zum Thema "Variable mit Schleife befüllen"