Wie verwende ich die vba-tabellenkalkulationsfunktion?
Wichtige Anmerkungen
- Mit der WorksheetFunction-Eigenschaft können Sie auf Arbeitsblattfunktionen zur Verwendung in einem Makro zugreifen.
So verwenden Sie eine Arbeitsblattfunktion in VBA beim Schreiben eines Makros
Führen Sie die folgenden Schritte aus, um eine Arbeitsblattfunktion in VBA zu verwenden.
- Geben Sie zunächst die Zelle an, in die Sie die von der Funktion zurückgegebenen Werte einfügen möchten.
- Verwenden Sie anschließend ein Gleichheitszeichen (=) und geben Sie Application.WorksheetFunction ein (wie Sie es bereits in einer Excel-Anwendung tun können, können Sie nur WorksheetFunction verwenden).
- Als nächstes müssen Sie einen Punkt (.) eingeben. Sobald Sie dies getan haben, erhalten Sie eine Liste der Funktionen, die Sie in der Tabelle haben.
- Von hier aus verwenden wir die TextJoin-Funktion, um den Text in den Zellen A1 und B1 zu verbinden. Einfach so verwenden Sie eine Funktion in der Tabelle; Wenn Sie Startklammern eingeben, werden Ihnen die Argumente angezeigt, die Sie in der Zelle angeben müssen.
- Wie Sie im obigen Screenshot sehen können, wird das Argument angezeigt, das Sie angeben müssen, nicht jedoch der Name des Arguments. Daher müssen Sie die Argumente kennen, bevor Sie sie verwenden können. Hier sind die Argumente, die Sie in TextJoin verwenden müssen.
- Geben wir nun Argumente in die Funktion ein.
- abgrenzen: » «
- ignore_empty: True
- text1: Bereich („A1“)
- text2: Bereich („B1“)
Hier ist der vollständige Code.
Sub MyMacro() Range("A1") = _ Application.WorksheetFunction.TextJoin _ (" ", True, Range("A2"), Range("A3")) End Sub
Es gibt insgesamt 387 Arbeitsblattfunktionen , die Sie in VBA verwenden können. Es gibt jedoch einige Funktionen (Beispiel: LEFT ), die nicht verfügbar sind.
Grund? In VBA gibt es integrierte Funktionen , die Sie beim Schreiben von VBA-Code verwenden können. Sehen wir uns an, ob Sie ein Meldungsfeld verwenden möchten, um den Wert einer Funktion abzurufen. Nehmen wir an, Sie möchten den Maximalwert des Bereichs namens „myValues“ erhalten.
Der Code wäre:
Sub MyMacro() MsgBox Prompt:=WorksheetFunction.Max(Range("myValues")) End Sub
Und so erhalten Sie eine Meldungsbox:
Application.WorksheetFunction vs. Application
Es gibt zwei verschiedene Möglichkeiten, auf eine Arbeitsblattfunktion zu verweisen. Nachfolgend sind die beiden verschiedenen Codezeilen aufgeführt, die dieselbe Aktivität ausführen.
Sub MyMacro() MsgBox Prompt:= _ Application.WorksheetFunction.Max(Range("myValues")) MsgBox Prompt:= _ Application.Max(Range("myValues")) End Sub
Die Verwendung der zweiten Methode bietet jedoch einen Vorteil. Es gibt einen Fehlercode zurück, anstatt den Fehler direkt anzuzeigen.