Statische Variable
01.03.2004 17:45:45
Benjamin
habe folgendes Problem. Ich habe eine statische Funktion Oldvalue die mir einen Wert eines Feldes speichert. Nun verliert diese Variable aber ihren wert wenn ich ein worksheet mit 2 commandbuttons darauf lösche (und somit nicht mehr in den Debugmodus komme). Lösche ich das sheet nicht behält die Variable auch ihren wert.
Der Code sieht folgendermaßen aus:
'Code der die statische Variable speichert und wenn ohne Argument aufgerufen
'den Wert zurückgibt
Public Static Function oldValue(Optional Target As Range) As String
Static oldVal As String
If Not Target Is Nothing Then
If Target.Cells.Count = 1 Then
oldVal = Target.Value
End If
End If
oldValue = oldVal
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
If (Target.Row <= 2 And Target.Column = 1) Then
Worksheets(toCountSheet).Copy before:=Sheets(1)
Worksheets(1).name = shtName
Worksheets(1).Move after:=Sheets(Sheets.count)
'Hier folgen Berechnungen
Application.DisplayAlerts = False
Worksheets(shtName).Delete
Application.DisplayAlerts = True
Worksheets(target.parent.name).Activate
Call oldValue(Target)
End If
End Sub
Nach dem delete wird zwar nochmals oldvalue aufgerufen und der wert gespeichert, aber frägt man den wert dach der Sub Worksheet_Change() nochmals ab ist er empty. Ohne ein löschen des sheets bleibt der Wert erhalten. Ich denke es liegt daran, dass auf dem sheet 2 commandbuttons sich befinden, denn wenn man ein sheet zum testen ohne buttons nimmt, funktioniert es aquch wunderbar.
Kann mir da jemand helfen? Danke.
Gruß
Benjamin