2016-08-02 18 views
2

Mein VBA ist ein bisschen rostig, so habe ich Probleme beim Erstellen einer Anwendung, die automatisch einige Zellen aktualisiert, wenn der Wert einer Zelle geändert wird.VBA Worksheet_SelectionChange funktioniert nicht

Ich habe mit diesem grundlegenden Unterprogramm gestartet wird, auf einer Worksheet Seite befindet:

Private Sub Worksheet_Change(ByVal Target As Range) 

Application.EnableEvents = True 
If Not Intersect(Target, Target.Worksheet.Range("A1")) Is Nothing Then 
    MsgBox "Lorem Ipsum" 
End If 

End Sub 

Dieses Unterprogramm ein Meldungsfeld Pop-up sollte Lorem Ipsum, wenn der Wert der Zelle A1 modifiziert wird.

Dies funktioniert jedoch nicht. Ich konnte nicht herausfinden, wo das Problem liegt. typische Probleme (Unterprogramm in einem Modul, EnableEvents gewendet False) sollte nicht mit dem obigen Code passieren; Ich habe auch versucht, Target.Worksheet.Range("A1") zu Range("A1") zu ändern.

Weiß jemand woher kommt das Problem?

+0

Es funktioniert gut für mich –

+0

Können Sie doppelt sicherstellen, dass es im richtigen Blatt Code-Bereich ist? –

+1

Und dann tippen Sie 'Application.EnableEvents = True' im Direktfenster und überprüfen Sie dann –

Antwort

3

Das Problem ist, dass, wenn ausgeschaltet sind, die Worksheet-Ereignisse nicht ausgelöst werden und Ihr Code keine Chance erhalten wird.

es wieder einzuschalten, geben Sie Application.EnableEvents = True in dem Direkt-Fenster

enter image description here

Nun sollte ohne Probleme laufen Sie den Code wie unten

gezeigt.

+1

Die erste Zeile meines Codes ('Application.EnableEvents = True') sollte damit umgehen, oder? –

+3

Wenn 'Application.EnableEvents = False' ist, wird das Ereignis nicht ausgelöst und der Code wurde nie an erster Stelle ausgeführt. –

+0

Thomas, du bist auf dem richtigen Weg. Sie müssen jedoch eine weitere Zeile hinzufügen, um zu erklären, wie Sie es einschalten können :) –

Verwandte Themen