wie ann ich das realisieren? muss ich beim aufrufen der neuen subroutine irgendwie definieren, dass die variable xy mitgenommen werden soll?
wie ann ich das realisieren? muss ich beim aufrufen der neuen subroutine irgendwie definieren, dass die variable xy mitgenommen werden soll?
dafuer brauchts Du eine Public-Variable; wird oberhalb des Makros definiert, z.B:
Public DeineVariable_XY As String
-------------------------------------
Sub DeinMakro ()
'hier Dein Code
End Sub
Der Inhalt einer Public-Variablen steht zur Verfuegung, solange die Datei geoeffnet ist.
Gruss Volker
Das ist das Prinzip:
Sub Test1()
Dim VariableZumBearbeiten as String
VariableZumBearbeiten = "Dieser Wert soll gelöscht werden"
Test2 VariableZumBearbeiten
MsgBox VariableZumBearbeiten
End Sub
Sub Test2(ÜbernommeneVariable as String)
ÜbernommeneVariable = ""
End Sub
MAlexander
MAlexander
beim turbo pascal beispielsweise konnte man dies tun, wenn man bei de sub hinten in klammer die variable mitliefert, aber dies scheint hier wohl nicht zu gehen....
schade, aber trotzdem danke
MAlexander
was meinst Du mit "Seiteneffekte"? Hatte bisher keine Probleme mit Publics.
Gruss Volker
Diese müssen ja auch nicht unbedingt auftreten.
Beispiel:
Global Betrag as Currency
Verwendet man jetzt häufig "Betrag" für bspw. verschiedene Währungen, dann kann es ja durchaus vorkommen, daß eine Routine x "Betrag" verwendet, ohne diesen vorher zu initialisieren also munter mit dem alten Wert weiter rechnet (was logischerweise ein Programmierfehler ist !).
Bei Global ist es deshalb nicht immer einfach zu entscheiden und festzustellen, wo ein Resultat eigentlich herkommt.
Deshalb vermeide ich Globals so weit wie möglich.
MAlexander
test2 Par1, Par2, Par3, Par4
für
sub test2´(Par1 as string,Par2 as currency, Par3 as double, Par4 as date)
Du kannst auch optionale Parameter angeben (auch mit Default-Werten).
Du kannst aber auch was ganz anderes machen, was die Felexibilität ganz enorm erhöht:
ParamArray
Für Dir mal die VBA-Hilfe zu gemüte, da gibt es zig Beispiele.
MAlexander
wenn Du mit "Seiteneffekte" meinst, dass evtl. die Fehlersuche nach eigenen Programierfehlern schwieriger wird, dann o.k. Aber ansonsten kann man mit Publics manchen Code auch straffen und sogar einen Tick beschleunigen.
Danke, Volker
MAlexander
MAlexander