Worksheet_SelectionChange to jedno ze zdarzeń arkusza , automatycznie wykrywające zaznaczenia w arkuszu.
kliknij, aby powiększyć
Procedura ta znajduje się w module arkusza. Ma jeden argument Target , typu Range. Argument ten informuje, która komórka/komórki została zaznaczona.
Procedura Worksheet_SelectChange jest często stosowana i ma różne praktyczne zastosowania. Warto jednak stosować ją rozsądnie i z przemyśleniem, gdyż bardzo łatwo można doprowadzić do zapętlenia.
W niektórych przypadkach warto też zastanowić się nad wyłączaniem zdarzeń – przydaje się.
Worksheet_Change to jedno ze zdarzeń arkusza , automatycznie wykrywające zmianę w komórce.
kliknij, aby powiększyć
Procedura ta znajduje się w module arkusza (każdy arkusz skoroszytu ma swój własny moduł).
Ma jeden argument Target , typu Range. Argument ten informuje, która komórka/komórko zostały zmienione.
Zmiana komórki oznacza zmianę jej wartości, wpisanej ręcznie/wprowadzonej kodem VBA. Komórki, w których znajdują się formuły, nawet jeżeli zmieniają swoją wartość na skutek zmiany argumentów, nie są w ten sposób wykrywane.
Procedura Worksheet_Change jest często stosowana i praktyczna. Jeżeli istotna jest dla mnie tylko jednak komórka (np.A1), zmiana której powinna uruchomić jakąś procedurę, robię to tak jak w przykładzie:
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Row = 1 And Target.Column = 1 Then ’odwołanie do ciągu instrukcji lub innego makra End If End Sub
W tym przypadku zmiana w każdej innej komórce wprawdzie wywoła zmianę, ale jeżeli nie wejdzie w warunek, ciąg instrukcji nie zostanie wykonany.
Ja w swoich projektach najczęściej stosuję stosuję też zasadę, żeby najpierw sprawdzać ilość komórek w zakresie. Może mieć to znaczenie, szczególnie jeśli zakres jest wielokomórkowy, a istotna jest wartość zmienianej komórki.
W niektórych przypadkach warto też zastanowić się nad wyłączaniem zdarzeń – przydaje się.
Każdy arkusz w skoroszycie Excela ma swój własny moduł edytora VBA. Można tam tworzyć procedury automatycznie uruchamiane zdarzeniami arkusza.
Jednym z często stosowanych takich zdarzeń jest Aktywacja arkusza.
kliknij, aby powiększyć
Procedura Worksheet_Activate() jest uruchamiana zawsze przy aktywacji skoroszytu.
Przykład takiej procedury przechodzącego do pierwszej komórki aktywowanego arkusza to:
Private Sub WorkSheet_Activate() Range(„A1”).Activate End Sub
Ja w swoich projektach najczęściej stosuję tę metodę do ukrycia/odkrycia pewnych obszarów, ustawienia obszaru wydruku itp.
Zdarzenia arkusza to procedury wyzwalane automatycznie poprzez konkretne metody związane z konkretnym arkuszem, w module którego są umieszczone. Każdy arkusz ma swój własny moduł, w którym można ustawić jego procedury.
Po wybraniu z lewej strony Worksheet, z prawej strony możemy wybrać konkretne zdarzenie: