Proceduren und Parameterübergabe
23.02.2007 08:13:00
Thomas
ich habe mal wieder etwas geschafft, was ich nicht nachvollziehen kann. In einer Procedur, Ostern(Jahr As Long), wird eine weitere Procedur FindeFeiertag(.....), aufgerufen und dieser einige Parameter übergeben, die teilweise in Procedur Ostern berechnet werden. Nachdem Findefeiertag(....) erfolgreich durchlaufen wurde, wird ein übergebenener Parameter an Findefeiertag(....) von dieser Procedur in Ostern() geändert. Genau das stellt mein Problem dar. Warum geschieht das?
Ich rufe Findefeiertage(....) mehrmals hintereinander auf und die Änderung eines Prameters bewirkt eine falsche Berechnung bei den folgenden Aufrufen.
Hier ein Auszug aus dem Quellcode:
Sub Ostern(Jahr As Long)
'hier Berechnung von Ostern
'X enthält den Ostertag und m den Monat, Extra verhindert, dass der ursprüngliche Wert von
'X verloren geht
Extra = X
'Finde Rosenmontag(Ostern - 48 Tage)
Call FindeFeiertag(Jahr, m + 2, -48, Extra, "Rosenmontag")
'Nach demDurchlauf enthält Extra den Wert, der in FindeFeiertag erstellt wird
Extra = X
'Finde Rosendienstag(Ostern - 47 Tage)
Call FindeFeiertag(Jahr, m + 2, -47, Extra, "Rosendienstag")
End Sub
Sub FindeFeiertag(Jahr As Long, Monat As Long, diffTage As Long, Index As Long, Feiertag _
As String)
'vorher wird der richtige Tag gesucht
'Feiertag im gefundenen Feld eintragen
Worksheets(Monatsname(Monat)).Cells(AdresseDaten(Index, 0), AdresseDaten(Index, 1)).Value _
= Feiertag
'das ist die letzte Zeile in der Sub, danach wird der Wert in Index zurück an
'Oster() in Variabel Extra geschrieben
End Sub
Besten Dak im voraus!