JIT-Debugger

03/02/2008 - 15:05 von Egon Heller | Report spam
Hallo,
ich verwende Office 2007 und Vista Business.
Folgendes Excel VBA-Programm stürzt mir ab:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

Set Bereich = Range("C4:C8")
If Not Intersect(Target, Bereich) Is Nothing Then
Target = UCase(Target)
End If
End Sub

Bei Verwendung des Programms kommt die Fehlermeldung:
Es wurde kein registrierter JIT-Debugger angegeben.
Excel stürzt dabei ab.
Wie kann man das Problem beheben? Ich bedanke mich für euere Hilfe.
Gruß
Egon
 

Lesen sie die antworten

#1 Peter Schleif
03/02/2008 - 15:20 | Warnen spam
Egon Heller schrieb:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range

Set Bereich = Range("C4:C8")
If Not Intersect(Target, Bereich) Is Nothing Then
Target = UCase(Target)
End If
End Sub



Damit làufst Du in eine unbeabsichtige Rekursion, weil durch die Zeile

Target = UCase(Target)

das Sheet geàndert wird und das Ereignis 'Worksheet_Change' gleich
wieder ausgelöst wird. Die Funktion ruft sich also selbst wieder auf.
Du kannst es mit einer boolean-Variablen z.B. so verhindern:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Static rekursion As Boolean

If Not rekursion Then

rekursion = True

Set Bereich = Range("C4:C8")
If Not Intersect(Target, Bereich) Is Nothing Then
Target = UCase(Target)
End If

rekursion = False

End If

End Sub

Ähnliche fragen