W trakcie swoich praktyk VBA będziesz musiał uruchamiać makra, gdy zmieni się określony zakres lub komórka. W takim przypadku, aby uruchomić makra po wprowadzeniu zmiany w zakresie docelowym, używamy zdarzenia change. Zdarzenia w VBA umożliwiają nam uruchamianie makr, gdy wystąpi określone zdarzenie.
Zdarzenie zmiany zakresu składni VBA
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("twój_zakres")) To nic Następnie wywołaj twoje_makro End If End Sub
Wydarzenie nie działa w modułach. Musisz je zapisać w obiektach (arkusz, wykresy, skoroszyt).
Lat's mają przykład, aby nauczyć się uruchamiać makro, gdy zmiana jest dokonywana w określonym zakresie.
Przykład: uruchamianie makra VBA po wprowadzeniu zmiany w zakresie A2:A100
Najpierw wybieramy arkusz, na którym nastąpi zdarzenie. Kliknij dwukrotnie ten arkusz w edytorze VBA i skopiuj poniższy kod lub kod ogólny powyżej i wprowadź zmiany zgodnie z wymaganiami.
W tym przykładzie chcę uruchomić kod makra/VBA, gdy dokonana zostanie zmiana w zakresie A2: A100 w arkuszu 2. Aby to zrobić, dwukrotnie klikam arkusz 2 w eksploratorze projektu. Otwiera stronę kodową tego arkusza. Możesz kliknąć arkusz prawym przyciskiem myszy i kliknąć kod widoku, aby zrobić to samo.
Muszę użyć zdarzenia zmiany. W tym celu używamy domyślnego podprogramu Worksheet_Change(ByVal Target As Range). Wyzwala się, gdy zostanie dokonana określona zmiana. Więc nasz kod jest taki:
Private Sub Worksheet_Change(ByVal Target As Range) Jeśli nie przecina(Target, Range("A2:A100")) to nic to Wywołaj TestEvent End If End Sub
Gdy wprowadzisz jakiekolwiek zmiany w zakresie A2:A100 w Arkuszu2, zostanie wywołany podprogram TestEvent, jak widać na powyższym gifie.
TestEvent jest podprogramem publicznym w module2. Po prostu wyskakuje komunikat, że Wydarzenie działa.
Sub TestEvent() MsgBox "Zdarzenie działa!" Napis końcowy
Jak to działa?
Postawiliśmy warunek :
Jeśli nie przecina(cel, zakres("A2:A100")) to nic wtedy
Tutaj Intersect(Target, Range("A2:A100")) Is Nothing zwraca wartość True, jeśli nie dokonano żadnej zmiany w zakresie A2:A100. Umieszczamy operator Not przed tą instrukcją, która odwraca dane wyjściowe podane przez "Intersect(Target, Range("A2:A100"))". W związku z tym, jeśli żadna zmiana nie zostanie dokonana w zakresie A2:A100, wyrażenie zwróci Falls, a podTestEvent nie otrzyma wywołania. Jeśli dokonasz zmiany w dowolnej komórce z zakresu A2:A100, wyrażenie zwróci True i nastąpi zdarzenie. I tak się tutaj dzieje.
Notatka: W tym bloku możesz umieścić dowolny podprogram. Może pochodzić z dowolnego modułu. Ale powinien to być podprogram publiczny. Możesz ustawić zakres w dowolnym zakresie. Cały arkusz to granica.
Więc tak, w ten sposób można wywołać podprogram lub uruchomić kod makra/VBA, gdy zmiana zostanie dokonana w określonym zakresie. To był podstawowy przykład wydarzenia. To zdarzenie zostanie wywołane tylko wtedy, gdy zmiana jest oparta na tekście. Przez tekstowe mam na myśli, jeśli napiszesz coś w komórkach lub usuniesz, zdarzenie zostanie wywołane. Jeśli zmienisz formatowanie komórek, nie uruchomi się. Są na to inne metody.
Mam nadzieję, że to było pomocne. Jeśli masz jakieś pytania związane z tym tematem VBA lub jakimkolwiek innym tematem związanym z programem Excel, daj mi znać w sekcji komentarzy poniżej. I sprawdź nasze inne powiązane i popularne posty wymienione poniżej.
Uruchom makro po wprowadzeniu jakiejkolwiek zmiany w arkuszu| Aby uruchomić makro za każdym razem, gdy arkusz się zaktualizuje, używamy Zdarzeń arkusza roboczego VBA.
Najprostszy kod VBA do podświetlania bieżącego wiersza i kolumny za pomocą| Użyj tego małego fragmentu kodu VBA, aby podświetlić bieżący wiersz i kolumnę arkusza.
Zdarzenia arkusza roboczego w Excel VBA| Zdarzenia arkusza roboczego są naprawdę przydatne, gdy chcesz, aby makra były uruchamiane po wystąpieniu określonego zdarzenia w arkuszu.
Popularne artykuły:
50 skrótów Excela, które zwiększą Twoją produktywność | Przyspiesz swoje zadanie. Te 50 skrótów przyspieszy pracę w programie Excel.
Funkcja WYSZUKAJ.PIONOWO w programie Excel | Jest to jedna z najczęściej używanych i popularnych funkcji programu Excel, która służy do wyszukiwania wartości z różnych zakresów i arkuszy.
LICZ.JEŻELI w Excelu 2016 | Policz wartości z warunkami za pomocą tej niesamowitej funkcji. Nie musisz filtrować danych, aby policzyć konkretną wartość. Funkcja Countif jest niezbędna do przygotowania deski rozdzielczej.
Jak korzystać z funkcji SUMIF w programie Excel? | To kolejna ważna funkcja deski rozdzielczej. Pomaga to zsumować wartości w określonych warunkach.