Volatile Funktionen Excel VBA
In der Standardeinstellung des UDF ( User Defined Functions) in Excel VBA ist nicht flüchtig. Sie werden nur dann, wenn eine der Argumente der Funktion neu berechnet ändern. Eine veränderliche Funktion wird neu berechnet werden, wenn Berechnung in beliebigen Zellen in dem Arbeitsblatt auftritt. Lassen Sie uns einen Blick auf ein einfaches Beispiel nehmen dies ein wenig zu erklären.
-
Öffnen Sie den Visual Basic-Editor und klicken Sie auf Einfügen, Modul.
Erstellen Sie eine Funktion namens myFunction, die die Summe der ausgewählten Zelle und die Zelle unterhalb dieser Zelle zurückgibt.
-
Die folgenden Codezeilen hinzu:
Function MYFUNCTION(cell As Range) MYFUNCTION = cell.Value + cell.Offset(1, 0).Value End Function
-
Nun können Sie diese Funktion verwenden, wie jede andere Excel-Funktion.
-
Dies ist eine nichtflüchtige Funktion. Nichtflüchtige Funktionen werden nur dann, wenn eines der Argumente Änderung der Funktion neu berechnet. Ändern Sie den Wert der Zelle B2 bis 8.
-
Nun den Wert der Zelle B3 bis 11. ändern
Erläuterung: die nichtflüchtige Funktion nicht neu berechnet, wenn eine andere Zelle auf dem Blatt ändert.
-
Aktualisieren Sie die Funktion folgt, wie die Funktion flüchtig zu machen:
Function MYFUNCTION(cell As Range) Application.Volatile MYFUNCTION = cell.Value + cell.Offset(1, 0).Value End Function
-
Ändern Sie den Wert der Zelle B3 bis 12
Ergebnis:
Hinweis: Sie müssen die Funktion erneut eingeben, um flüchtig zu machen (oder aktualisieren, indem Sie den Cursor in der Bearbeitungsleiste platzieren und die Eingabetaste drücken).