Wie kann ich Variablen übergeben (Excel, VisualBasic)?
Hallo zusammen,
ich habe eine UserForm in der folgendes steht:
...
Spalte = 3
Zeile = 6
Unload UserForm1
If OptionButton2 = True Then
UserForm2.Show
End If
...
In der zweiten UserForm steht dann:
Sub CommandButton1_Click()
If OptionButton1 = True Then
Spalte = 6
ElseIf OptionButton2 = True Then
Spalte = 9
ElseIf OptionButton3 = True Then
Spalte = 12
ElseIf OptionButton4 = True Then
Spalte = 15
End If
Unload UserForm2
End Sub
Leider funktioniert es nicht und "Spalte" bleibt immer 6.. Kann mir jemand weiterhelfen und sagen wie ich es hin bekomme, dass Spalte geändert wird?
4 Antworten
Unload UserForm1
If OptionButton2 = True Then
UserForm2.Show
End If
Wenn dieser Code in der UserForm1 steht, dann heißt dies, dass als erstes die UserForm1 entladen wird. Damit kann aber der nachfolgende Code nicht ausgeführt werden. Setz mal Unload UserForm1 an das Programmende.
Wenn ich es richtig verstehe, hast Du nur den Klick auf OptionButton1 abgefragt. Also sind die anderen Button nicht relevant, die können den Code gar nicht aufrufen. Du musst das also für alle Button hinterlegen (Spalte dann als globale Variable) oder eine andere Art des Ereignisses triggern.
Hab mich jetzt nicht weiter reinvertieft, aber Variable übergibt man innerhalb einer Aufrufeserie so: Deklariere eine Variable als Public. Das macht man ganz oben, neben Option explicit danach einen Doppelpunkt, Leerzeichen und Public Variablenname, ggf mehrere wie bei Dim
option explicit:
ist nicht nötig
(aber sinnvoll - erzeugt aber zunächst fehler bei undeklarierten variablen)
im Prinzip ja, aber bereits Public Spalte as Byte
und dann nicht nochmal in Dim Spalte, ist ja schon angemeldet.
Und wie gesagt: nur innerhalb eines Makros, das andere aufruft, danach wird die auch wieder gelöscht!
Es wäre auch interessant zu wissen, in welcher Sprache? JavaScript...? Mit diesem Code kann man nicht wirklich was anfangen...
Excel verwendet VBA (steht ja sogar in der Frage!), "man" kann damit schon was anfangen!
So?