Vba: so führen sie ein makro aus, wenn sich ein zellenwert ändert


Sie können die folgende Syntax in VBA verwenden, um ein Makro auszuführen, wenn sich ein bestimmter Zellenwert ändert:

 Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = " $A$1 " Then
        Call MultiplyMacro
    End If
End Sub

Dieses spezielle Beispiel führt dazu, dass das Makro „MultiplyMacro“ ausgeführt wird, wenn sich der Wert der Zelle A1 ändert.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Führen Sie mithilfe von VBA ein Makro aus, wenn sich ein Zellenwert ändert

Angenommen, wir erstellen das folgende Makro namens MultiplyMacro , das die Werte in den Zellen A1 und B1 multipliziert und die Ergebnisse in Zelle C1 anzeigt:

 SubMultiplyMacro ()
    Range(" C1 ") = Range(" A1 ") * Range(" B1 ")
End Sub

Angenommen, wir haben den Wert 12 in Zelle A1 und den Wert 3 in Zelle B1 .

Wenn wir dieses Makro ausführen, erhalten wir das folgende Ergebnis:

Nehmen wir nun an, wir möchten dieses Makro automatisch ausführen, wenn sich der Wert von Zelle A1 ändert.

Dazu können wir mit der rechten Maustaste auf den Blattnamen klicken und dann auf Code anzeigen klicken:

Im angezeigten Codebearbeitungsfenster können Sie den folgenden Code einfügen:

 Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = " $A$1 " Then
        Call MultiplyMacro
    End If
End Sub

Der folgende Screenshot zeigt, wie das in der Praxis geht:

Anschließend können wir den VB-Editor schließen.

Wenn wir nun den Wert in Zelle A1 ändern, wird das Makro „ MultiplyMacro“ automatisch ausgeführt und führt eine Multiplikation mit dem neuen Wert in Zelle A1 durch.

Angenommen, wir ändern den Wert der Zelle A1 auf 10 . Sobald wir den Wert ändern und die Eingabetaste drücken, wird das Makro ausgeführt:

Das Makro multipliziert 10 mit 3 und zeigt das Ergebnis in Zelle C2 an.

Hinweis : Wenn Sie das Makro ausführen möchten, wenn sich eine Zelle in einem bestimmten Bereich ändert, können Sie die folgende Syntax verwenden:

 Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range(" A1:B1 ")) Is Nothing Then
        Call MultiplyMacro
    End If
End Sub

Dadurch wird das Makro „ MultiplyMacro“ ausgeführt, wenn sich eine Zelle im Bereich A1:B1 ändert.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:

VBA: So zählen Sie die Anzahl der Blätter in einer Arbeitsmappe
VBA: So extrahieren Sie Daten aus einer anderen Arbeitsmappe
VBA: So fügen Sie neue Blätter hinzu

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert