Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Definition von mehreren Variablen (While-Schleife)

Definition von mehreren Variablen (While-Schleife)
18.07.2017 18:56:36
mehreren
Hallo Excel-Forum,
ich habe folgendes VBA-Problem:
Es sollen mehrere Variablen, bei denen sich jeweils nur die letzte Stelle verändert, durch eine While-Schleife definiert werden. Die Anzahl der Variablen wird durch Auslesen der Länge einer anderen Tabelle ("Uebersicht") bestimmt. Den Variablen wird später jeweils der Inhalt der zugehörigen Tabellenzelle zugeordnet.
Nun meine Frage: Wie bekomme ich es hin, dass immer der Wert der Variable i hinter den Variablenbeginn "Gruppe_" gesetzt wird?
Hoffe, dass sich da jemand auskennt! Unten mein Code-Ansatz!
Grüße
Moritz

Dim i As Long
i = 1
Dim MaxVariablen As Long
MaxVariablen = Sheets("Uebersicht").Cells(65536, 1).End(xlUp).Row
While i i As String
Gruppe_ i = Sheets("Uebersicht").Cells(i, 1)
i=i+1
Wend 

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

Betreff
Datum
Anwender
Anzeige
AW: Definition von mehreren Variablen (While-Schleife)
18.07.2017 19:44:06
mehreren
Hi Moritz,
ich weiß nicht, ob man SO Variablen deklarieren kann, habe zum Testen jetzt auch nicht Zeit, mir ist aber das hier aufgefallen:
Änder diese Zeile
Dim Gruppe_ i As String

durch diese Zeile
Dim Gruppe_ & i As String

In deiner Zeile fehlt das & - Zeichen.
Hilfts?
Ciao
Thorsten
AW: Definition von mehreren Variablen (While-Schleife)
18.07.2017 19:50:42
mehreren
Hi Thorsten,
vielen Dank für deinen Tipp. Hatte ich aber auch schon versucht. Kommt leider immer die Fehlermeldung: Fehler beim Kompilieren!
Gruß
Moritz
Das ist Blödsinn! So etwas kann man in einer ...
18.07.2017 20:19:14
Luc:-?
…Deklaration nicht machen, Thorsten & Moritz;
man kann aber eine Variable als Datenfeld (Array, hier unbestimmter ElementeAnzahl) deklarieren:
Dim Gruppe_() As String
i = 1 weglassen → dann wird mit 1.Index i=0 begonnen, was in VBA das Normale ist. Anderenfalls müsste man Option Base 1 am ModulAnfang schreiben oder später stets mit LBound 1 und jeweiligem UBound ReDimmen → zB ReDim Gruppe_(1 To i)
Und dann in der Schleife: ReDim Preserve Gruppe_(i) bzw ReDim Preserve Gruppe_(1 To i)
Besser wäre es allerdings, die benötigte ElementeAnzahl vorher festzustellen. Falls die variabel sein kann und die 1.Zelle in Zeile 1 liegt wie hier, ginge das so: ReDim Gruppe_(MaxVariablen - 1) bzw ReDim Gruppe_(1 To MaxVariablen)
Falls der 1.Index nun 0 ist, muss i beim Vgl <MaxVariablen sein. Außerdem wäre dann auch eine For i = 0 To MaxVariablen - 1-Schleife möglich, was das separate Index-Erhöhen spart. Die Zuweisung würde bei beiden Schleifen so lauten:
Gruppe_(i) = Sheets("Uebersicht").Cells(i + 1, 1)
Würde aber mit 1.Index = 1 gearbeitet, lautete die Zuweisung so:
Gruppe_(i) = Sheets("Uebersicht").Cells(i, 1)
Beim Rückspeichern ins Blatt wäre es egal, ob das Array 0- oder 1-basiert ist.
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …
Anzeige
AW: Das ist Blödsinn! So etwas kann man in einer ...
18.07.2017 20:49:02
Moritz
Hi Luc,
danke für deine ausführliche Antwort (Mal wieder was dazu gelernt). Funktioniert jetzt so, wie es sollte!
Gruß
Moritz

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige