Während Ihrer VBA-Praktiken müssen Sie Makros ausführen, wenn sich ein bestimmter Bereich oder eine Zelle ändert. In diesem Fall verwenden wir zum Ausführen von Makros bei einer Änderung eines Zielbereichs das Änderungsereignis. Ereignisse in VBA ermöglichen es uns, die Makros auszuführen, wenn ein bestimmtes Ereignis eintritt.
Syntax VBA-Bereichsänderungsereignis
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("your_range")) Is Nothing Then call your_macro End If End Sub
Das Event funktioniert nicht in Modulen. Sie müssen sie in Objekte schreiben (Arbeitsblatt, Diagramme, Arbeitsmappe).
Lats haben ein Beispiel, um zu lernen, wie ein Makro ausgeführt wird, wenn eine Änderung in einem bestimmten Bereich vorgenommen wird.
Beispiel: Führen Sie ein VBA-Makro aus, wenn eine Änderung im Bereich A2:A100 . vorgenommen wird
Zuerst wählen wir das Blatt aus, auf dem das Ereignis auftritt. Doppelklicken Sie im VBA-Editor auf dieses Blatt und kopieren Sie den folgenden Code oder den generischen Code oben und nehmen Sie die Änderungen gemäß Ihren Anforderungen vor.
In diesem Beispiel möchte ich einen Makro/VBA-Code ausführen, wenn eine Änderung im Bereich A2 vorgenommen wird: A100 auf Blatt 2. Dazu doppelklicke ich im Projekt-Explorer auf Blatt2. Es öffnet die Codierungsseite für dieses Blatt. Sie können mit der rechten Maustaste auf das Blatt klicken und auf den Ansichtscode klicken, um dasselbe zu tun.
Ich muss das Änderungsereignis verwenden. Dafür verwenden wir die Standard-Subroutine Worksheet_Change(ByVal Target As Range). Es wird ausgelöst, wenn eine bestimmte Änderung vorgenommen wird. Unser Code ist also dieser:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:A100")) Is Nothing Then Call TestEvent End If End Sub
Wenn Sie Änderungen im Bereich A2:A100 auf Sheet2 vornehmen, wird die Subroutine TestEvent aufgerufen, wie Sie im obigen Gif sehen können.
Das TestEvent ist die öffentliche Unterroutine in module2. Es erscheint einfach eine Meldung, dass das Ereignis funktioniert.
Sub TestEvent() MsgBox "Ereignis funktioniert!" End Sub
Wie funktioniert es?
Wir haben eine Bedingung gestellt:
Wenn kein Schnittpunkt (Ziel, Bereich ("A2: A100")) ist, dann ist nichts
Hier Intersect(Target, Range("A2:A100")) Is Nothing gibt True zurück, wenn keine Änderung im Bereich A2:A100 vorgenommen wird. Wir setzen einen Not-Operator vor diese Anweisung, der die Ausgabe von "Intersect(Target, Range("A2:A100"))" umkehrt. Wenn also im Bereich A2:A100 keine Änderung vorgenommen wird, gibt der Ausdruck Falls zurück und das untergeordnete TestEvent erhält den Aufruf nicht. Wenn Sie in einer Zelle im Bereich A2:A100 eine Änderung vornehmen, gibt der Ausdruck True zurück und das Ereignis tritt ein. Und genau das passiert hier.
Notiz: In diesen Block können Sie jedes beliebige Unterprogramm einfügen. Es kann von jedem Modul stammen. Aber es sollte eine öffentliche Unterroutine sein. Sie können den Bereich beliebig einstellen. Das ganze Blatt ist die Grenze.
Also ja, Leute, so können Sie eine Unterroutine aufrufen oder einen Makro-/VBA-Code ausführen, wenn eine Änderung in einem bestimmten Bereich vorgenommen wird. Es war ein grundlegendes Ereignisbeispiel. Dieses Ereignis wird nur ausgelöst, wenn die Änderung textbasiert ist. Mit textbasiert meine ich, wenn Sie etwas in die Zellen schreiben oder löschen, wird das Ereignis ausgelöst. Wenn Sie die Formatierung der Zellen ändern, wird es nicht ausgelöst. Dafür gibt es andere Methoden.
Ich hoffe, es war hilfreich. Wenn Sie Fragen zu diesem VBA-Thema oder einem anderen Excel-bezogenen Thema haben, lassen Sie es mich im Kommentarbereich unten wissen. Und sieh dir unsere anderen verwandten und beliebten Beiträge an, die unten erwähnt werden.
Makro ausführen, wenn Änderungen am Blatt vorgenommen werden| Um Ihr Makro bei jeder Blattaktualisierung auszuführen, verwenden wir die Arbeitsblattereignisse von VBA.
Einfachster VBA-Code zum Hervorheben der aktuellen Zeile und Spalte mit| Verwenden Sie dieses kleine VBA-Snippet, um die aktuelle Zeile und Spalte des Blatts hervorzuheben.
Die Arbeitsblattereignisse in Excel VBA| Das Arbeitsblattereignis ist wirklich nützlich, wenn Sie möchten, dass Ihre Makros ausgeführt werden, wenn ein bestimmtes Ereignis auf dem Blatt auftritt.
Populäre Artikel:
50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität | Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Tastenkombinationen arbeiten Sie noch schneller mit Excel.
Die SVERWEIS-Funktion in Excel | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, die verwendet wird, um Werte aus verschiedenen Bereichen und Blättern zu suchen.
ZÄHLENWENN in Excel 2016 | Zählen Sie Werte mit Bedingungen mit dieser erstaunlichen Funktion. Sie müssen Ihre Daten nicht filtern, um einen bestimmten Wert zu zählen. Die Countif-Funktion ist unerlässlich, um Ihr Dashboard vorzubereiten.
So verwenden Sie die SUMIF-Funktion in Excel | Dies ist eine weitere wesentliche Funktion des Dashboards. Dies hilft Ihnen, Werte unter bestimmten Bedingungen zusammenzufassen.