EnableEvents czyli wyłączanie zdarzeń

Application.ScreenUpdating to właściwość obiektu Application odpowiadająca za włączanie/wyłączanie zdarzeń.

kliknij, aby powiększyć

Właściwość ta może przyjmować dwie wartości typu Boolean:

      • True – włączanie zdarzeń
      • False – wyłączanie zdarzeń

Stosowana jest najczęściej w przypadku działających zdarzeń arkusza, aby uniknąć zapętlenia kodu.
Na przykład:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value < 0 Then
  Application.EnableEvents = False
  Range(„B1”).Value =-2
  Application.EnableEvents = True
End If
End Sub

W przedstawionej procedurze Worksheet_Change wpisanie wartości komórki mniejszej od 0, automatycznie zmienia wartość w komórce B1 na wartość -1. Jednak zmiana w komórce B1 też zostanie wykryta przez zdarzenie. Bez zastosowania Application.EnableEvents   szybko pojawi się błąd. W przypadkach bardziej skomplikowanych – szanse są jeszcze większe.
Oczywiście, można precyzyjnie określić zakres Target uruchamiający procedurę, ale to rozwiązanie jest zdecydowanie bardziej uniwersalne.

 


Kurs Programowanie VBA w Excelu dla zaawansowanych

 

Jeden komentarz do “EnableEvents czyli wyłączanie zdarzeń”

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *