Es gibt viele Möglichkeiten, Funktionen in VBA zu verwenden. VBA wird mit vielen integrierten Funktionen geliefert. Sie können sogar Ihre eigenen Funktionen (UDFs) erstellen. Sie können jedoch auch viele Funktionen von Excel in VBA verwenden, indem Sie Application.WorksheetFunction verwenden.
So verwenden Sie Arbeitsblattfunktionen in VBA
Um auf eine Excel-Funktion in VBA zuzugreifen, fügen Sie Application.WorksheetFunction vor der Funktion hinzu, die Sie aufrufen möchten. Im folgenden Beispiel rufen wir die Max-Funktion von Excel auf:
12 | Maximalwert so lang dimmenmaxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
Die Syntax der Funktionen ist dieselbe, jedoch geben Sie die Funktionsargumente wie bei jeder anderen VBA-Funktion ein.
Beachten Sie, dass die Syntax der Max-Funktion bei der Eingabe angezeigt wird (ähnlich wie bei VBA-Funktionen):
ArbeitsblattFunktionsmethode
WorksheetFunction ist eine Methode des Application-Objekts. Es ermöglicht Ihnen den Zugriff auf viele (nicht alle) der standardmäßigen Excel-Arbeitsblattfunktionen. Im Allgemeinen erhalten Sie keinen Zugriff auf Arbeitsblattfunktionen, die über eine entsprechende VBA-Version verfügen.
Unten sehen Sie eine Liste mit vielen der gebräuchlichsten Arbeitsblattfunktionen.
Anwendung.ArbeitsblattFunktion vs. Anwendung
Es gibt eigentlich zwei Möglichkeiten, auf diese Funktionen zuzugreifen:
Application.WorksheetFunction (wie oben zu sehen):
1 | maxvalue = Application.WorksheetFunction.Max(Range("a1").Value, Range("a2").Value) |
oder Sie können die WorksheetFunction weglassen
1 | maxvalue = Application.Max(Range("a1").Value, Range("a2").Value) |
Leider wird durch das Weglassen der WorksheetFunction der Intellisense eliminiert, der die Syntax anzeigt (siehe Abbildung oben). Es hat jedoch einen großen potentiellen Vorteil: Fehlerbehandlung.
Wenn Sie Application verwenden und Ihre Funktion einen Fehler generiert, gibt sie den Fehlerwert zurück. Wenn Sie die WorksheetFunction-Methode verwenden, löst VBA einen Laufzeitfehler aus. Natürlich können Sie den VBA-Fehler behandeln, aber es ist normalerweise besser, den Fehler von vornherein zu vermeiden.
Schauen wir uns ein Beispiel an, um den Unterschied zu sehen:
Vlookup-ArbeitsblattFunktionsfehlerbehandlung
Wir werden versuchen, ein Vlookup durchzuführen, das zu keiner Übereinstimmung führt. Die Vlookup-Funktion gibt also einen Fehler zurück.
Zuerst verwenden wir die WorksheetFunction-Methode. Beachten Sie, wie VBA einen Fehler auslöst:
Als nächstes lassen wir die WorksheetFunction weg. Beachten Sie, wie die
Als nächstes werden wir die WorksheetFunction weglassen. Beachten Sie, dass kein Fehler ausgegeben wird und stattdessen die Funktion "Wert" den Fehlerwert aus dem Vlookup enthält.
Liste der VBA-Arbeitsblattfunktionen
Unten finden Sie eine Liste der meisten gebräuchlichen VBA-Arbeitsblattfunktionen.
Funktion | Beschreibung |
---|---|
Logisch | |
UND | Prüft, ob alle Bedingungen erfüllt sind. WAHR FALSCH |
WENN | Wenn die Bedingung erfüllt ist, tun Sie etwas, wenn nicht, tun Sie etwas anderes. |
WENNFEHLER | Wenn das Ergebnis ein Fehler ist, tun Sie etwas anderes. |
ODER | Prüft, ob Bedingungen erfüllt sind. WAHR FALSCH |
Nachschlagen & Referenz | |
WÄHLEN | Wählt einen Wert aus einer Liste basierend auf seiner Positionsnummer. |
HVERWEIS | Suchen Sie einen Wert in der ersten Zeile und geben Sie einen Wert zurück. |
INDEX | Gibt einen Wert basierend auf seinen Spalten- und Zeilennummern zurück. |
SCHAU HOCH | Sucht Werte entweder horizontal oder vertikal nach. |
SPIEL | Sucht nach einem Wert in einer Liste und gibt seine Position zurück. |
TRANSPOSIEREN | Kehrt die Ausrichtung eines Zellbereichs um. |
SVERWEIS | Suchen Sie einen Wert in der ersten Spalte und geben Sie einen Wert zurück. |
Terminzeit | |
DATUM | Gibt ein Datum aus Jahr, Monat und Tag zurück. |
DATUMWERT | Wandelt ein als Text gespeichertes Datum in ein gültiges Datum um |
TAG | Gibt den Tag als Zahl zurück (1-31). |
TAGE360 | Gibt Tage zwischen 2 Daten in einem 360-Tage-Jahr zurück. |
EDATUM | Gibt ein Datum zurück, das n Monate vom Startdatum entfernt ist. |
EOMONTH | Gibt den letzten Tag des Monats zurück, n Monate entfernt. |
STUNDE | Gibt die Stunde als Zahl zurück (0-23). |
MINUTE | Gibt die Minute als Zahl zurück (0-59). |
MONAT | Gibt den Monat als Zahl (1-12) zurück. |
NETZWERKTAGE | Anzahl der Arbeitstage zwischen 2 Terminen. |
NETWORKDAYS.INTL | Werktage zwischen 2 Terminen, benutzerdefinierte Wochenenden. |
JETZT | Gibt das aktuelle Datum und die aktuelle Uhrzeit zurück. |
SEKUNDE | Gibt die Sekunde als Zahl zurück (0-59) |
ZEIT | Gibt die Zeit aus einer Stunde, Minute und Sekunde zurück. |
ZEITWERT | Wandelt eine als Text gespeicherte Zeit in eine gültige Zeit um. |
WOCHENTAG | Gibt den Wochentag als Zahl (1-7) zurück. |
WOCHENNUMMER | Gibt die Wochennummer in einem Jahr (1-52) zurück. |
WERKTAG | Das Datum n Arbeitstage ab einem Datum. |
JAHR | Gibt das Jahr zurück. |
JAHRFRAC | Gibt den Bruchteil eines Jahres zwischen 2 Daten zurück. |
Maschinenbau | |
KONVERTIEREN | Konvertieren Sie die Zahl von einer Einheit in eine andere. |
Finanziell | |
FV | Berechnet den zukünftigen Wert. |
PV | Berechnet den Barwert. |
NPER | Berechnet die Gesamtzahl der Zahlungsperioden. |
PMT | Berechnet den Zahlungsbetrag. |
BEWERTUNG | Berechnet den Zinssatz. |
Barwert | Berechnet den Nettobarwert. |
IRR | Die interne Rendite für eine Reihe von periodischen CFs. |
XIRR | Der interne Zinsfuß für eine Reihe von nicht periodischen CF. |
PREIS | Berechnet den Preis einer Anleihe. |
EINTRAGEN | Der Zinssatz eines voll investierten Wertpapiers. |
Information | |
ISERR | Testen, ob der Zellenwert ein Fehler ist, ignoriert #N/A. WAHR FALSCH |
ISFEHLER | Testen Sie, ob der Zellenwert ein Fehler ist. WAHR FALSCH |
ISEVEN | Testen Sie, ob der Zellenwert gerade ist. WAHR FALSCH |
ISLOGISCH | Testen Sie, ob die Zelle logisch ist (WAHR oder FALSCH). WAHR FALSCH |
ISNA | Testen Sie, ob der Zellenwert #N/A ist. WAHR FALSCH |
ISNONTEXT | Testen Sie, ob die Zelle kein Text ist (leere Zellen sind kein Text). WAHR FALSCH |
IST NUMMER | Testen Sie, ob Zelle eine Zahl ist. WAHR FALSCH |
IST UNGERADE | Testen Sie, ob der Zellenwert ungerade ist. WAHR FALSCH |
ISTEXT | Testen Sie, ob die Zelle Text ist. WAHR FALSCH |
TYP | Gibt den Werttyp in einer Zelle zurück. |
Mathematik | |
Abs | Berechnet den Absolutwert einer Zahl. |
AGGREGAT | Definieren und führen Sie Berechnungen für eine Datenbank oder eine Liste durch. |
DECKE | Rundet eine Zahl auf das nächste angegebene Vielfache auf. |
COS | Gibt den Kosinus eines Winkels zurück. |
GRAD | Wandelt Radiant in Grad um. |
DSUM | Summiert Datenbankeinträge, die bestimmte Kriterien erfüllen. |
SOGAR | Rundet auf die nächste gerade ganze Zahl. |
EXP | Berechnet den Exponentialwert für eine gegebene Zahl. |
TATSACHE | Gibt die Fakultät zurück. |
BODEN | Rundet eine Zahl auf das nächste angegebene Vielfache ab. |
GCD | Gibt den größten gemeinsamen Teiler zurück. |
INT | Rundet eine Zahl auf die nächste ganze Zahl ab. |
LCM | Gibt das kleinste gemeinsame Vielfache zurück. |
LN | Gibt den natürlichen Logarithmus einer Zahl zurück. |
PROTOKOLL | Gibt den Logarithmus einer Zahl zu einer angegebenen Basis zurück. |
LOG10 | Gibt den Logarithmus zur Basis 10 einer Zahl zurück. |
MROUND | Rundet eine Zahl auf ein angegebenes Vielfaches. |
SELTSAM | Rundet auf die nächste ungerade ganze Zahl. |
PI | Der Wert von PI. |
ENERGIE | Berechnet eine potenzierte Zahl. |
PRODUKT | Multipliziert ein Array von Zahlen. |
QUOTIENT | Gibt das ganzzahlige Ergebnis der Division zurück. |
RADIANS | Wandelt einen Winkel in Bogenmaß um. |
RANDZWISCHEN | Berechnet eine Zufallszahl zwischen zwei Zahlen. |
RUNDEN | Rundet eine Zahl auf eine angegebene Anzahl von Stellen. |
ABRUNDEN | Rundet eine Zahl ab (gegen Null). |
ZUSAMMENFASSEN | Rundet eine Zahl auf (von Null weg). |
SÜNDE | Gibt den Sinus eines Winkels zurück. |
ZWISCHENSUMME | Gibt eine zusammenfassende Statistik für eine Reihe von Daten zurück. |
SUMME | Fügt Zahlen zusammen. |
SUMIF | Summiert Zahlen, die ein Kriterium erfüllen. |
SUMIFE | Summiert Zahlen, die mehrere Kriterien erfüllen. |
SUMMENPRODUKT | Multipliziert Arrays von Zahlen und summiert das resultierende Array. |
BRÄUNEN | Gibt den Tangens eines Winkels zurück. |
Statistiken | |
DURCHSCHNITT | Durchschnitte Zahlen. |
MITTELWERTWENN | Durchschnittliche Zahlen, die ein Kriterium erfüllen. |
MITTELWERTIFS | Ermittelt Zahlen, die mehrere Kriterien erfüllen. |
KORREL | Berechnet die Korrelation zweier Reihen. |
ZÄHLEN | Zählt Zellen, die eine Zahl enthalten. |
ANZAHL | Zählen Sie Zellen, die nicht leer sind. |
COUNTBLANK | Zählt Zellen, die leer sind. |
ZÄHLENWENN | Zählt Zellen, die ein Kriterium erfüllen. |
ZÄHLER | Zählt Zellen, die mehrere Kriterien erfüllen. |
VORHERSAGE | Vorhersage zukünftiger y-Werte anhand der linearen Trendlinie. |
FREQUENZ | Zählt Werte, die in die angegebenen Bereiche fallen. |
WACHSTUM | Berechnet Y-Werte basierend auf exponentiellem Wachstum. |
ABFANGEN | Berechnet den Y-Achsenabschnitt für eine Best-Fit-Gerade. |
GROSS | Gibt den k-größten Wert zurück. |
LINEST | Gibt Statistiken zu einer Trendlinie zurück. |
MAX | Gibt die größte Zahl zurück. |
MEDIAN | Gibt die Medianzahl zurück. |
MINDEST | Gibt die kleinste Zahl zurück. |
MODUS | Gibt die häufigste Zahl zurück. |
PERZENTIL | Gibt das k-te Perzentil zurück. |
PERZENTIL.INC | Gibt das k-te Perzentil zurück. Wobei k inklusive ist. |
PROZENTIL.EXC | Gibt das k-te Perzentil zurück. Wobei k exklusiv ist. |
QUARTIL | Gibt den angegebenen Quartilwert zurück. |
QUARTILE.INC | Gibt den angegebenen Quartilwert zurück. Inklusive. |
QUARTILE.EXC | Gibt den angegebenen Quartilwert zurück. Exklusiv. |
RANG | Rang einer Zahl innerhalb einer Reihe. |
RANG.AVG | Rang einer Zahl innerhalb einer Reihe. Durchschnitte. |
RANG.EQ | Rang einer Zahl innerhalb einer Reihe. Top-Rang. |
NEIGUNG | Berechnet die Steigung aus der linearen Regression. |
KLEIN | Gibt den k-kleinsten Wert zurück. |
STABW | Berechnet die Standardabweichung. |
STABW.P | Berechnet die SD einer gesamten Population. |
STABW.S | Berechnet die SD einer Probe. |
STABW. | Berechnet die SD einer gesamten Population |
TREND | Berechnet Y-Werte basierend auf einer Trendlinie. |
Text | |
SAUBER | Entfernt alle nicht druckbaren Zeichen. |
DOLLAR | Konvertiert eine Zahl in Text im Währungsformat. |
FINDEN | Sucht die Textposition innerhalb einer Zelle. Groß-/Kleinschreibung wird beachtet. |
LINKS | Schneidet Text um eine Reihe von Zeichen von links ab. |
LEN | Zählt die Anzahl der Zeichen im Text. |
MITTE | Extrahiert Text aus der Mitte einer Zelle. |
RICHTIG | Wandelt Text in die richtige Groß-/Kleinschreibung um. |
ERSETZEN | Ersetzt Text basierend auf seiner Position. |
REPT | Wiederholt den Text mehrmals. |
RECHTS | Schneidet Text um eine Reihe von Zeichen von rechts ab. |
SUCHE | Sucht die Textposition innerhalb einer Zelle. Groß-/Kleinschreibung wird nicht beachtet. |
ERSATZ | Sucht und ersetzt Text. Groß-/Kleinschreibung beachten. |
TEXT | Wandelt einen Wert in Text mit einem bestimmten Zahlenformat um. |
TRIMMEN | Entfernt alle zusätzlichen Leerzeichen aus dem Text. |