Während Ihrer VBA-Praktiken müssen Sie Makros ausführen, wenn sich ein bestimmter Bereich oder eine bestimmte Zelle ändert. In diesem Fall verwenden wir das Änderungsereignis, um Makros auszuführen, wenn eine Änderung an einem Zielbereich vorgenommen wird.

`link: / excel-macros-und-vba-events-in-vb [Ereignisse in VBA] ermöglicht es uns, die Makros auszuführen, wenn ein bestimmtes Ereignis auftritt.

Syntax VBA Range Change Event

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 Ereignis funktioniert nicht in Modulen. Sie müssen sie in Objekte (Arbeitsblatt, Diagramme, Arbeitsmappe) schreiben.

Lats haben ein Beispiel, um zu lernen, wie ein Makro ausgeführt wird, wenn eine Änderung in einem bestimmten Bereich vorgenommen wird.

Beispiel: Ausführen eines VBA-Makros Wenn eine Änderung im Bereich A2: A100 vorgenommen wird, wählen wir zuerst das Blatt aus, auf dem das Ereignis auftreten soll. Doppelklicken Sie im VBA-Editor auf dieses Blatt, kopieren Sie den folgenden Code oder den generischen Code oben und nehmen Sie die entsprechenden Änderungen vor.

image

In diesem Beispiel möchte ich einen Makro- / VBA-Code ausführen, wenn eine Änderung im Bereich A2: A100 auf Blatt 2 vorgenommen wird. Dazu doppelklicke ich im Projektexplorer auf Blatt 2. Es öffnet sich 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-SubroutineWorksheet_Change (ByVal Target As Range). Es wird ausgelöst, wenn eine bestimmte Änderung vorgenommen wird. Unser Code lautet also:

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 auf Blatt 2 Änderungen im Bereich A2: A100 vornehmen, wird das Unterprogramm TestEvent aufgerufen, wie Sie im obigen GIF sehen können.

Das TestEvent ist das öffentliche Unterprogramm in Modul 2. Es wird einfach eine Meldung angezeigt, dass das Ereignis funktioniert.

Sub TestEvent()

MsgBox "Event is working!"

End Sub

Wie funktioniert es?

Wir haben eine Bedingung gestellt:

Wenn sich nicht überschneiden (Ziel, Bereich („A2: A100“)) ist nichts, dann ist HereIntersect (Ziel, Bereich („A2: A100“)) Ist nichts wahr, wenn keine Änderung in Bereich A2: A100 vorgenommen wird. Wir setzen vor dieser Anweisung einen Not-Operator, der die Ausgabe von „Intersect (Target, Range (“ A2: A100 „))“ umkehrt. Wenn im Bereich A2: A100 keine Änderung vorgenommen wird, gibt der Ausdruck Falls zurück und das subTestEvent erhält den Aufruf nicht. Wenn Sie eine Änderung in einer Zelle im Bereich A2: A100 vornehmen, gibt der Ausdruck True zurück und das Ereignis tritt ein. Und genau das passiert hier.

Hinweis: Sie können ein beliebiges Unterprogramm in diesen Block einfügen. Es kann von jedem Modul sein. 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 dies nicht ausgelöst. Es gibt andere Methoden, um das zu tun.

Ich hoffe es war hilfreich. Wenn Sie Fragen zu diesem VBA-Thema oder einem anderen Excel-Thema haben, teilen Sie mir den Kommentarbereich unten mit. Schauen Sie sich auch unsere anderen verwandten und beliebten Beiträge an, die unten erwähnt werden.

Verwandte Artikel:

link: / events-in-vba-einfachster-vba-code-zum-hervorheben-der-aktuellen-zeile-und-spalte-mit [Einfachster VBA-Code zum Hervorheben der aktuellen Zeile und Spalte mit] * | Verwenden Sie dieses kleine VBA-Snippet, um Markieren Sie die aktuelle Zeile und Spalte des Blattes.

link: / events-in-vba-das-arbeitsblatt-events-in-excel-vba [Die Arbeitsblattereignisse in Excel VBA] * | Das Arbeitsblattereignis ist sehr nützlich, wenn Ihre Makros ausgeführt werden sollen, wenn ein bestimmtes Ereignis auf dem Blatt auftritt.

Beliebte Artikel:

link: / Tastatur-Formel-Verknüpfungen-50-Excel-Verknüpfungen-zur-Steigerung-Ihrer-Produktivität [50 Excel-Verknüpfungen zur Steigerung Ihrer Produktivität] | Werden Sie schneller bei Ihrer Aufgabe. Mit diesen 50 Verknüpfungen können Sie noch schneller in Excel arbeiten.

link: / formeln-und-funktionen-einführung-der-vlookup-funktion [Die VLOOKUP-Funktion in Excel] | Dies ist eine der am häufigsten verwendeten und beliebtesten Funktionen von Excel, mit der Werte aus verschiedenen Bereichen und Tabellen gesucht werden. link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016] | Zählen Sie Werte mit Bedingungen, die diese erstaunliche Funktion verwenden. Sie müssen Ihre Daten nicht filtern, um einen bestimmten Wert zu zählen.

Die Countif-Funktion ist wichtig, um Ihr Dashboard vorzubereiten.

link: / excel-formel-und-funktion-excel-sumif-funktion [Verwendung der SUMIF-Funktion in Excel] | Dies ist eine weitere wichtige Funktion des Dashboards. Auf diese Weise können Sie Werte unter bestimmten Bedingungen zusammenfassen.