Möglicherweise möchten Sie Ihr Makro- / VBA-Snippet ausführen, wenn eine Zelle ihren Wert ändert, wenn ein Doppelklick erfolgt, wenn ein Blatt ausgewählt wird usw. In all diesen Fällen verwenden wir den Arbeitsblatt-Ereignishandler. Der Event Handler hilft uns, VBA-Code auszuführen, wenn ein bestimmtes Ereignis auftritt.

In diesem Artikel lernen wir kurz die einzelnen Arbeitsblatt-Ereignishandler kennen.

Was ist ein Worksheets Event Handler? Ein Arbeitsblatt-Ereignishandler ist eine Unterroutine, die für ein Arbeitsblattmodul lokal ist.

Wo soll der Arbeitsblatt-Ereignishandlercode geschrieben werden?

image

Die Arbeitsblattereignisse werden nur in Blattobjekte geschrieben. Wenn Sie ein Arbeitsblattereignis in einem Modul oder Klassenmodul schreiben, tritt kein Fehler auf, aber es funktioniert einfach nicht.

In das Blattobjekt schreiben. Doppelklicken Sie darauf oder klicken Sie mit der rechten Maustaste und klicken Sie auf Ansichtscode. Der Code-Schreibbereich wird angezeigt.

Wie schreibe ich Code für ein bestimmtes Ereignis in das Arbeitsblatt?

Wenn Sie sich jetzt im Bearbeitungsmodus befinden, sehen Sie im Dropdown-Menü in der oberen linken Ecke Allgemeines. Klicken Sie auf das Dropdown-Menü und wählen Sie das Arbeitsblatt aus.

Jetzt werden in der Dropdown-Liste oben rechts alle Ereignisse angezeigt. Wählen Sie aus, was Sie benötigen, und ein Skelettcode für dieses Ereignis wird für Sie geschrieben.

image

Jedes Ereignis hat einen festen Prozedurnamen. Dies sind die reservierten Unterprogrammnamen. Sie können sie nicht für andere Unterprogramme auf einem Blatt verwenden. In einem Modul arbeiten sie wie eine normale Unterroutine.

Wichtig: Jedes Unterprogramm aus dieser Liste wird für das angegebene Ereignis ausgeführt.

Eine Art von Arbeitsblatt-Ereignisprozedur kann nur einmal auf ein Blatt geschrieben werden. Wenn Sie zwei gleiche Ereignisbehandlungsprozeduren auf ein Blatt schreiben, führt dies zu einem Fehler und keine davon wird ausgeführt. Natürlich wird der Fehler mehrdeutige Unterprogramme sein.

Lassen Sie uns kurz über jedes der Ereignisse lernen.

1. TheWorksheet_Change-Ereignis (ByVal-Ziel als Bereich) Dieses Ereignis wird ausgelöst, wenn Änderungen an enthaltenen Arbeitsblättern vorgenommen werden (Formatierung ausgeschlossen). Wenn Sie etwas tun möchten, wenn Änderungen am gesamten Blatt vorgenommen wurden, lautet der Code:

Private Sub Worksheet_Change(ByVal Target As Range)

'do somehting

Msgbox "done something"

End Sub

Das „Ziel“ ist immer die aktive Zelle.

Ein weiteres Beispiel: Möglicherweise möchten Sie Datum und Uhrzeit in Zelle B1 einfügen, wenn sich A1 ändert. In diesem Fall verwenden wir das Ereignis worksheet_change. Der Code würde folgendermaßen aussehen:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$A$1" Then

Range("B1").Value2 = Format(Now(), "hh:mm:ss")

End If

End Sub

Dies zielt nur auf die Zelle A1 ab.

Wenn Sie einen Bereich als Ziel festlegen möchten, verwenden Sie das folgende Beispiel:

link: / events-in-vba-run-macro-if-any-change-made-on-sheet-range [Makro ausführen, wenn Änderungen am Blatt im angegebenen Bereich vorgenommen wurden]

2. TheWorksheet_SelectionChange (ByVal-Ziel als Bereich) * Ereignis Wie der Name schon sagt, wird dieses Ereignis ausgelöst, wenn sich die Auswahl ändert. Mit anderen Worten, wenn sich Ihr Cursor in Zelle A1 befindet und in eine andere Zelle verschoben wird, wird der Code in dieser Unterroutine ausgeführt.

Der folgende Code ändert die Farbe der aktiven Zellen, wenn sie sich ändern und wenn es sich um eine gerade Zeile handelt.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Row Mod 2 = 0 Then

Target.Interior.ColorIndex = 22

End If

End Sub

Immer wenn sich mein Cursor in einer geraden Zeile bewegt, wird er farbig. Zellen mit ungeraden Zeilen werden verschont.

image

Ein weiteres Beispiel für das Ereignis Worksheet_SelectionChange:

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]

3. Das Worksheet_Activate () -Ereignis Dieses Ereignis wird ausgelöst, wenn der Ereigniscode mit dem Blatt aktiviert wird.

Der Skelettcode für dieses Ereignis lautet:

Private Sub Worksheet_Activate()

End Sub

Ein einfaches Beispiel zeigt den Blattnamen, wenn er ausgewählt wird.

Private Sub Worksheet_Activate()

MsgBox "You are on " & ActiveSheet.Name

End Sub

Sobald Sie auf das Blatt kommen, das diesen Code enthält, wird das Ereignis ausgeführt und die Meldung „Sie befinden sich auf dem Blattnamen“

wird angezeigt (Blatt2 ist in meinem Fall).

4. Das Ereignis Worksheet_Deactivate () Dieses Ereignis wird ausgelöst, wenn der Code mit dem Blatt verlassen wird. Mit anderen Worten, wenn Sie etwas tun möchten, z. B. Zeilen ausblenden oder etwas anderes, wenn Sie das Blatt verlassen, verwenden Sie dieses VBA-Ereignis. Die Syntax lautet:

Private Sub Worksheet_Deactivate()

'your code

'

End Sub

Das folgende Beispielereignis Worksheet_Deativate zeigt einfach eine Meldung an, dass Sie das Hauptblatt verlassen haben, wenn Sie dieses Blatt verlassen.

Private Sub Worksheet_Deactivate()

MsgBox "You Left The Master Sheet"

End Sub

image

===

5. Das Worksheet_BeforeDelete () * -Ereignis Dieses Ereignis wird ausgelöst, wenn Sie das Löschen des VBA-Ereignisses mit dem Blatt bestätigen. Die Syntax ist einfach:

Private Sub Worksheet_BeforeDelete()

End Sub

Mit dem folgenden Code werden Sie gefragt, ob Sie den Inhalt des zu löschenden Blattes kopieren möchten.

Private Sub Worksheet_BeforeDelete()

ans = MsgBox("Do you want to copy the content of this sheet to a new sheet?", vbYesNo)

If ans = True Then

'code to copy

End If

End Sub

6. TheWorksheet_BeforeDoubleClick (ByVal-Ziel als Bereich, Abbrechen als Boolescher Wert) * Ereignis Dieses Ereignis wird ausgelöst, wenn Sie auf die Zielzelle doppelklicken. Die Syntax dieses VBA-Arbeitsblattereignisses lautet:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

End Sub

Wenn Sie die Zielzelle oder den Zielbereich nicht festlegen, wird sie bei jedem Doppelklick auf das Blatt ausgelöst.

Die Variable Abbrechen ist eine boolesche Variable. Wenn Sie True festlegen, wird die Standardaktion nicht ausgeführt. Wenn Sie auf die Zelle doppelklicken, wird sie nicht in den Bearbeitungsmodus versetzt.

Mit dem folgenden Code wird die Zelle mit einer Farbe gefüllt, wenn Sie auf eine Zelle doppelklicken.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Cancel = True

Target.Interior.ColorIndex = 7

End Sub

Der folgende Code zielt auf die Zelle A1 ab. Wenn es bereits mit der angegebenen Farbe gefüllt ist, verschwindet die Farbe. Es ist ähnlich wie eine Schaltfläche oder ein Kontrollkästchen.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

If Target.Address = "$A$1" Then



Cancel = True

If Target.Interior.ColorIndex = 4 Then

Target.Interior.ColorIndex = xlColorIndexNone

Else

Target.Interior.ColorIndex = 4

End If



End If



End Sub

image

7. TheWorksheet_BeforeRightClick (ByVal-Ziel als Bereich, Abbrechen als Boolescher Wert) * Ereignis Dieses Ereignis wird ausgelöst, wenn Sie mit der rechten Maustaste auf die Zielzelle klicken. Die Syntax dieses VBA-Arbeitsblattereignisses lautet:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Cancel = True

'

'your code

'

End Sub

Der folgende Code füllt die Zelle mit dem Wert 1, wenn Sie mit der rechten Maustaste darauf klicken.

Die Standardoptionen für Rechtsklick werden nicht angezeigt, da wir den Operator „Abbrechen“ auf „Wahr“ gesetzt haben.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

Cancel = True

Target.Value = 1

End Sub

8. TheWorksheet_Calculate () * Ereignis Wenn Sie möchten, dass etwas passiert, wenn ein Excel ein Blatt berechnet, verwenden Sie dieses Ereignis. Es wird ausgelöst, wenn Excel ein Blatt berechnet. Die Syntax ist einfach:

Private Sub Worksheet_Calculate()

'

'your code

'

End Sub
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)

'

'your code

'

End Sub

Sie können den Ziel-Hyperlink festlegen, wenn Sie möchten. Wenn Sie den Ziel-Hyperlink nicht festlegen, wird er ausgeführt, wenn Sie auf einen Hyperlink im Code mit dem Blatt klicken.

Also ja Leute, dies waren einige grundlegende Arbeitsblattereignisse, die nützlich sein werden, wenn Sie über sie Bescheid wissen. Im Folgenden finden Sie einige verwandte Artikel, die Sie möglicherweise gerne lesen möchten.

Wenn Sie Zweifel an diesem Artikel oder einem anderen Artikel im Zusammenhang mit Excel / VBA haben, teilen Sie uns dies im Kommentarbereich unten mit.

Verwandte Artikel:

link: / tips-using-worksheet-change-event-to-run-macro, wenn eine Änderung vorgenommen wird [Verwenden des Arbeitsblatt-Änderungsereignisses zum Ausführen eines Makros, wenn eine Änderung vorgenommen wird] * | Um Ihr Makro bei jeder Aktualisierung des Arbeitsblatts auszuführen, verwenden wir die Arbeitsblattereignisse von VBA.

link: / events-in-vba-run-macro-if-any-change-made-on-sheet-range [Makro ausführen, wenn Änderungen am Blatt im angegebenen Bereich vorgenommen wurden] * | Verwenden Sie diesen VBA-Code, um Ihren Makrocode auszuführen, wenn sich der Wert in einem angegebenen Bereich ändert. Es erkennt alle Änderungen, die im angegebenen Bereich vorgenommen wurden, und löst das Ereignis aus.

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 die aktuelle Zeile und Spalte des Blattes hervorzuheben.

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. Diese 50 Verknüpfungen beschleunigen Ihre Arbeit in Excel noch schneller.

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.