VBA Application.Match - Schritt-für-Schritt-Anleitung mit Beispielen

Inhaltsverzeichnis

Excel VBA Application.Match

Eines der besten Dinge an VBA ist, dass es eine eigene Funktion hat und es uns auch ermöglicht, auf alle Arbeitsblattfunktionen unter der Klasse „Arbeitsblattfunktion“ zuzugreifen. Sie müssen die MATCH-Funktion bereits als Arbeitsblattfunktion verwendet haben, es handelt sich jedoch nicht um eine VBA-Funktion. Daher müssen Sie unter der Arbeitsblattfunktionsklasse darauf zugreifen. In diesem Artikel zeigen wir Ihnen, wie Sie die MATCH-Funktion in VBA mithilfe der Application-Methode verwenden.

Schnelle Zusammenfassung der MATCH-Funktion

MATCH ist eine Suchfunktion, die nach der Position des Suchwerts im genannten Sucharray sucht. Schauen Sie sich zum Beispiel das folgende Bild der Daten an.

In den obigen Daten haben wir Monate von A2 bis A6, und wenn wir wissen möchten, an welcher Stelle der Monat „Mar“ auftritt, können wir die MATCH-Funktion verwenden.

Unten finden Sie die Syntax der MATCH-Funktion.

MATCH (Lookup-Wert, Lookup-Array, (Match-Typ))
  • Suchwert: Für welchen Wert suchen wir die Position im Sucharray?
  • Lookup-Array: In welchem ​​Array suchen wir nach der Position des Lookup-Werts.
  • (Match Type): Hierfür können wir drei Argumente angeben.
  1. 1 = weniger als
  2. 0 = Genaue Übereinstimmung
  3. -1 = Größer als

Meistens verwenden wir nur "0 Exact Match".

Wie verwende ich die Application.Match-Funktion in VBA?

Beispiel 1

Schauen Sie sich die folgenden Daten in Excel an.

Aus den obigen Daten müssen wir die Position des "Mar" -Monats im Bereich der Zellen von A2 bis A6 ermitteln. Da wir Ergebnisse in D2-Zellen benötigen, starten Sie den Code sofort als Bereich („D2“). Wert =.

Um einen Wert in der D2-Zelle zu erhalten, müssen wir die MATCH-Arbeitsblattfunktion verwenden. Um darauf zuzugreifen, müssen wir zuerst auf das APPLICATION-Objekt und dann auf das WORKSHEET FUNCTION-Objekt zugreifen.

Geben Sie dot ein, um eine Liste der Arbeitsblattfunktionen anzuzeigen.

Wählen Sie "Match" aus der Liste.

Eines der Probleme in VBA bei der Verwendung von Arbeitsblattfunktionen ist, dass wir keine genaue Syntax sehen, wie wir es bei Arbeitsblattfunktionen sehen. Dies ist einer der Gründe, warum wir die Syntax erst am Anfang erklärt haben.

Das erste Argument ist also der Suchwert, dh für welchen Wert wir den Ort suchen. In diesem Fall suchen wir nach dem Platz für „Mar“ in der C2-Zelle. Geben Sie daher die Zellreferenz an.

Das nächste Argument ist das Lookup-Array, dh in welchem ​​Bereich wir nach der Position eines Lookup-Werts für diese Versorgungszellen von A2 bis A6 suchen .

Das letzte Argument ist eine genaue Übereinstimmung, geben Sie also 0 an.

Code:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, wir sind mit der Formel fertig.

Führen Sie den Code über die Taste F5 aus und sehen Sie, was wir erhalten.

Also haben wir das Ergebnis als 3 bekommen haben , weil der Wert „Mar“ ist an der Stelle der 3 rd Position im Bereich A2 bis A6.

Diese MATCH-Funktion kann die Position des Suchwerts angeben. Die MATCH-Funktion wird jedoch hauptsächlich mit der VLOOKUP-Funktion verwendet, um die Spaltenindexnummer basierend auf dem Spaltenkopf bereitzustellen.

Beispiel 2

Jetzt werden wir sehen, wie MATCH als unterstützende Funktion für die VLOOKUP-Funktion verwendet wird.

Schauen Sie sich die folgenden Daten an.

In der obigen Tabelle sehen wir uns die Verkäufe des Monats Februar „Februar“ an, daher müssen wir die VLOOKUP-Funktion verwenden. VLOOKUP ist auch eine Arbeitsblattfunktion. Greifen Sie also so zu, wie wir auf die MATCH-Funktion zugegriffen haben.

Der Suchwert ist G2-Zelle, geben Sie also die Zellenadresse an.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Die MATCH-Funktion liefert also die Spaltennummer aus dem Bereich A1 bis D1 für den Monat „Feb“. Lassen Sie uns den Code ausführen und sehen, wie er automatisch Spaltennummern erhält.

Los geht's, wir haben ein Ergebnis von Spalte Nummer 2 dank der automatischen Spaltennummer von der MATCH-Funktion.

Dinge, an die man sich erinnern sollte

  • Die MATCH-Funktion sucht nach der Position des Suchwerts in der ausgewählten Array-Tabelle.
  • Die MATCH-Funktion wird hauptsächlich mit der VLOOKUP-Funktion verwendet, um die Spaltenindexnummer automatisch mithilfe der Spaltenüberschrift bereitzustellen.
  • Die MATCH-Funktion ist in VBA als Arbeitsblattfunktion verfügbar.

Interessante Beiträge...