Beschreibung der Einschränkungen benutzerdefinierter Funktionen in Excel
Zusammenfassung
In den im Abschnitt „Gilt für" aufgeführten Versionen von Microsoft Excel können Sie mithilfe von Visual Basic für Applikationen eine benutzerdefinierte Funktion erstellen, die eine benutzerdefinierte Berechnung zurückgibt. Benutzerdefinierte Funktionen können jedoch keine Aktionen ausführen, die die Microsoft Excel-Umgebung ändern, wenn sie von einer Formel in einer Arbeitsblattzelle aufgerufen werden.
Mehr Informationen
Eine benutzerdefinierte Funktion, die von einer Formel in einer Arbeitsblattzelle aufgerufen wird, kann die Umgebung von Microsoft Excel nicht ändern. Das bedeutet, dass eine solche Funktion Folgendes nicht tun kann:
Fügen Sie Zellen in die Tabelle ein, löschen Sie sie oder formatieren Sie sie.
Ändern Sie den Wert einer anderen Zelle.
Verschieben, umbenennen, löschen oder fügen Sie Blätter zu einer Arbeitsmappe hinzu.
Ändern Sie beliebige Umgebungsoptionen, z. B. den Berechnungsmodus oder die Bildschirmansichten.
Namen zu einer Arbeitsmappe hinzufügen.
Legen Sie Eigenschaften fest oder führen Sie die meisten Methoden aus.
Der Zweck benutzerdefinierter Funktionen besteht darin, dem Benutzer die Erstellung einer benutzerdefinierten Funktion zu ermöglichen, die nicht in den im Lieferumfang von Microsoft Excel enthaltenen Funktionen enthalten ist. Auch die in Microsoft Excel enthaltenen Funktionen können die Umgebung nicht verändern. Funktionen können eine Berechnung durchführen, die entweder einen Wert oder Text an die Zelle zurückgibt, in die sie eingegeben werden. Alle Umgebungsänderungen sollten mithilfe einer Visual Basic-Subroutine vorgenommen werden.
Während der Berechnung untersucht Excel die Präzedenzfälle der Zelle, die eine benutzerdefinierte Funktion enthält. Wenn während des Berechnungsprozesses bisher nicht alle Präzedenzfälle berechnet wurden, ruft Excel schließlich die benutzerdefinierte Funktion auf und übergibt eine Null- oder leere Zelle an die Funktion. Excel stellt dann sicher, dass genügend Berechnungsdurchläufe erfolgen, damit alle Präzedenzfälle berechnet werden können. Während des letzten Berechnungsdurchlaufs werden der benutzerdefinierten Funktion die aktuellen Werte der Zellen übergeben. Dies kann dazu führen, dass die benutzerdefinierte Funktion häufiger als erwartet und mit unerwarteten Argumenten aufgerufen wird. Daher kann die benutzerdefinierte Funktion unerwartete Werte zurückgeben.
Für eine korrekte Berechnung sollten alle in der Berechnung verwendeten Bereiche als Argumente an die Funktion übergeben werden. Wenn Sie die Berechnungsbereiche nicht als Argumente übergeben, anstatt auf die Bereiche im VBA-Code der Funktion zu verweisen, kann Excel sie in der Berechnungs-Engine nicht berücksichtigen. Daher berechnet Excel die Arbeitsmappe möglicherweise nicht ausreichend, um sicherzustellen, dass alle Präzedenzfälle berechnet werden, bevor die benutzerdefinierte Funktion berechnet wird.
Verweise
„Visual Basic-Benutzerhandbuch" Version 5.0, Kapitel 4, „Was ist eine Visual Basic-Prozedur"
„Schreiben einer benutzerdefinierten Arbeitsblattfunktion", Microsoft Excel 7.0 Visual Basic-Hilfedatei.
No comments:
Post a Comment