Supportnet / Forum / Tabellenkalkulation
Nach dem "call-Befehl" ist variable 0
Frage
Hallo Zusammen
Habe folgendes Problem:
Ich habe 2 subs - schaut dann wie folgt aus
public sub sub1()
dim zahl as integer
´ jetzt bekomme ich durch meinen Programmcode
´ einen Zahl für meine Variable "zahl"
´ sub1 ist zu ende und jetzt möchte ich mit sub2
´ fortfahren
call sub2
end sub
´ in Sub2 möchte ich eine Schleife einbinden die
´ von 1 bis zahl zählt
public sub sub2()
dim zahl as integer
for i = 1 to zahl
.....
....
end Sub
So jetzt das Problem. Der sub2 kann mit der variable "zahl" nichts mehr anfangen bzw sie hat immer den Wert 0. Was mache ich falsch???
Danke schon mal für eure Antworten
gez
Hardwarehacker
Antwort 1 von Risatara2
Hallole
Ach ja, jetzt weiß ichs wieder.. Deklariere "Dim zahl as integer" mal vor dem ersten Sub, und nimm es aus der zweiten sub raus. Könnte uU dein Problem lösen.
Risatara
Ach ja, jetzt weiß ichs wieder.. Deklariere "Dim zahl as integer" mal vor dem ersten Sub, und nimm es aus der zweiten sub raus. Könnte uU dein Problem lösen.
Risatara
Antwort 2 von Event
Hallo
..oder übergib die Zahl an die Procedur beim Aufruf:
Gruß
..oder übergib die Zahl an die Procedur beim Aufruf:
Public Sub sub1()
Dim Zahl As Integer
Zahl = 10
sub2 (Zahl)
End Sub
Public Sub sub2(ByVal Zahl As Integer)
Debug.Print Zahl
End SubGruß
Antwort 3 von coros
Hi Hardwarehacker,
dekalriere die Variable "Zahl" nicht innerhalb Deiner Sub Routine, sondern ganz zu Anfan mit der Anweisung
Somit kannst Du egal von wo auf die Variable "Zahl" zugreifen. EIne andere Variante ist, die Variable beim Aufruf der 2. Sub Anweisung mit zu übergeben. In Deinem Fall würde das wie folgt lauten:
Ich habe die Beiden Bereiche, die es betrifft, unterstrichen.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
dekalriere die Variable "Zahl" nicht innerhalb Deiner Sub Routine, sondern ganz zu Anfan mit der Anweisung
Public Zahl As IntegerSomit kannst Du egal von wo auf die Variable "Zahl" zugreifen. EIne andere Variante ist, die Variable beim Aufruf der 2. Sub Anweisung mit zu übergeben. In Deinem Fall würde das wie folgt lauten:
public sub sub1()
dim zahl as integer
´ jetzt bekomme ich durch meinen Programmcode
´ einen Zahl für meine Variable "zahl"
´ sub1 ist zu ende und jetzt möchte ich mit sub2
´ fortfahren
sub2 Zahl
end sub
´ in Sub2 möchte ich eine Schleife einbinden die
´ von 1 bis zahl zählt
public sub sub2(Zahl As Integer)
dim zahl as integer
for i = 1 to zahl
.....
....
end Sub Ich habe die Beiden Bereiche, die es betrifft, unterstrichen.
Ich hoffe, Du kommst klar. Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 4 von coros
Hi ich noch mal,
ich hätte vielleicht den Beitrag von @Event besser lesen sollen, da war meine 2. Variante ja bereits erklärt, sorry.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
ich hätte vielleicht den Beitrag von @Event besser lesen sollen, da war meine 2. Variante ja bereits erklärt, sorry.
MfG,
coros
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 5 von Hardwarehacker
Herzlichen Dank für eure schnellen Antworten !!!
Habs auch schon ausprobiert und funktioniert super!!!
Danke
gez
Hardwarehacker
Habs auch schon ausprobiert und funktioniert super!!!
Danke
gez
Hardwarehacker

