Uruchom makro, jeśli w arkuszu w określonym zakresie wprowadzono jakiekolwiek zmiany

Spisie treści:

Anonim

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.