VBA Variable nimmt *anscheinend* willkürliche werte an

Pyrukar

Captain
Registriert
Jan. 2013
Beiträge
3.472
also ich habe ein großes VBA Formular mit vielen subs hinten drann,

dort möchte ich Variablen von einer *durch _click() getriggerte* sub in eine andere übergeben. Ich habe bereits das privat vor den den subs gelöscht, ohne effekt. Die sub, um die es mir gerade geht, in der ich es nicht funktioniert ist im endeffekt so aus:

sub cmd_click() '(davon gibt es mehrere)

i=1 '(die verschiedenen _clicks haben werte zwischen 1 und 6)

funktion

end sub

sub funktion()


array(1,i) =xyz

'(das array ist zwischen (,1) bis (,6) deffiniert aber an dieser Stelle ist i auf einmal 7. es kann durchaus sein, dass irgendwo ne zählerschleife auf 7 läuft und somit irgendwo der wert i=7 tatsächlich auftaucht aber eigentlich müsste ich es doch überschrieben haben oder)


end sub



somit läuft das ding immer wieder über und ich habe keine ahnung wie ich es beheben kann

i ist außerdem so definiert:
Dim i as integer
wenn ich i as global definieren will gibt es einen fehler :(

gruß

Pyrukar
 
"es kann durchaus sein, dass irgendwo ne zählerschleife auf 7 läuft und somit irgendwo der wert i=7 tatsächlich auftaucht aber eigentlich müsste ich es doch überschrieben haben oder"

Diese Frage solltest du dir selbst noch einmal stellen ;-)

Ansonsten kann man hier wenig erkennen.
 
Option Explicit gesetzt?
Wieso kommt ein Fehler wenn Du i Global definierst?

Benamung ist nicht zwingend durchdacht, ist es nun eine Funktion oder eine Prozedur? ;)

sub funktion()


array(1,i) =xyz

'(das array ist zwischen (,1) bis (,6) deffiniert aber an dieser Stelle ist i auf einmal 7. es kann durchaus sein, dass irgendwo ne zählerschleife auf 7 läuft und somit irgendwo der wert i=7 tatsächlich auftaucht aber eigentlich müsste ich es doch überschrieben haben oder)


end sub
Wo kommt XYZ her? Wo ist denn hier i definiert?
Sollte i nicht eher als Parameter von sub cmd_click() übergeben werden?
Ist schwierig aus den Teilfetzen schlau zu werden
 
Okay sorry für den voreiligen post, das i als parameter übergeben hätte ich auch selbst darauf kommen können.
 
Zurück
Oben