WorksheetFunction.Match-Methode (Excel)

Sucht Werte innerhalb eines Bezugs oder einer Matrix. Verwenden Sie Match anstelle einer der Nachschlagefunktionen, wenn Sie die Position eines Elements in einem Bereich anstelle des Elements selbst benötigen.

Syntax

Ausdruck. Match (Arg1, Arg2, Arg3)

Ausdruck Eine Variable, die ein WorksheetFunction-Objekt darstellt.

Parameter

Name Erforderlich/Optional Datentyp Beschreibung
Arg1 Erforderlich Variant Lookup_value: der Wert, den Sie zum Suchen des werts in einer Tabelle verwenden.
Arg2 Erforderlich Variant Lookup_array: ein zusammenhängender Zellbereich mit möglichen Nachschlagewerten. Suchmatrix muss eine Matrix oder ein Bezug auf eine Matrix sein.
Arg3 Optional Variant Match_type: die Zahl -1, 0 oder 1. Vergleichstyp gibt an, auf welche Weise Microsoft Excel die Werte in einer Suchmatrix mit den Suchkriterien vergleicht.

Rückgabewert

Double

Bemerkungen

Lookup_value ist der Wert, den Sie in der lookup_array. Wenn Sie z. B. eine Nummer in einem Telefonbuch suchen, verwenden Sie den Namen der Person als Nachschlagewert, aber die Telefonnummer ist der wert, den Sie möchten.

Suchkriterium kann ein Wert (eine Zahl, eine Zeichenfolge oder ein Wahrheitswert) oder ein Bezug auf eine Zelle sein, die eine Zahl, eine Zeichenfolge oder einen Wahrheitswert enthält.

Wenn match_type 1 ist, findet Match den größten Wert, der kleiner oder gleich dem Wert lookup_value. Die Elemente der Suchmatrix müssen in aufsteigender Reihenfolge angeordnet sein: ...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE.

Wenn match_type 0 ist, findet Match den ersten Wert, der genau gleich dem Wert lookup_value. Die Elemente der Suchmatrix dürfen in beliebiger Reihenfolge angeordnet sein. Beachten Sie, dass Bei Übereinstimmung die Groß-/Kleinschreibung nicht beachtet wird.

Wenn match_type -1 ist, findet Match den kleinsten Wert, der größer oder gleich dem Wert lookup_value. Die Elemente der Suchmatrix müssen in absteigender Reihenfolge angeordnet sein: TRUE, FALSE, Z-A,...2, 1, 0, -1, -2,... usw.

Fehlt das Argument Vergleichstyp, wird es als 1 angenommen.

Match gibt die Position des übereinstimmende Werts innerhalb lookup_array, nicht den Wert selbst zurück. Gibt beispielsweise MATCH("b",{"a","b","c"},0) 2 zurück, die relative Position von "b" innerhalb des Arrays {"a","b","c"} .

Match unterscheidet beim Abgleichen von Textwerten nicht zwischen Groß- und Kleinbuchstaben.

Wenn Match bei der Suche nach einer Übereinstimmung nicht erfolgreich ist, wird der Fehlerwert #N/A zurückgegeben.

Wenn match_type 0 und lookup_value Text ist, können Sie die Platzhalterzeichen, Fragezeichen (?) und Sternchen ( * ) in lookup_value. Mit einem Fragezeichen erfolgt ein Abgleich mit jedem einzelnen Zeichen; mit einem Stern erfolgt ein Abgleich mit einer beliebigen Abfolge von Zeichen. Wenn Sie nach einem Fragezeichen oder Sternchen suchen möchten, müssen Sie eine Tilde (~) vor das zu suchende Zeichen setzen.

Beispiel

In diesem Beispiel wird für jeden Wert in der ersten Spalte des ersten Arbeitsblatts über die gesamte Arbeitsmappe nach einem übereinstimmenden Wert gesucht. Wenn das Makro einen übereinstimmenden Wert findet, formatiert es den ursprünglichen Wert im ersten Arbeitsblatt in Fettdruck.

Sub HighlightMatches()
    Application.ScreenUpdating = False
    
    'Declare variables
    Dim var As Variant, iSheet As Integer, iRow As Long, iRowL As Long, bln As Boolean
       
       'Set up the count as the number of filled rows in the first column of Sheet1.
       iRowL = Cells(Rows.Count, 1).End(xlUp).Row
       
       'Cycle through all the cells in that column:
       For iRow = 1 To iRowL
          'For every cell that is not empty, search through the first column in each worksheet in the
          'workbook for a value that matches that cell value.

          If Not IsEmpty(Cells(iRow, 1)) Then
             For iSheet = ActiveSheet.Index + 1 To Worksheets.Count
                bln = False
                var = Application.Match(Cells(iRow, 1).Value, Worksheets(iSheet).Columns(1), 0)
                
                'If you find a matching value, indicate success by setting bln to true and exit the loop;
                'otherwise, continue searching until you reach the end of the workbook.
                If Not IsError(var) Then
                   bln = True
                   Exit For
                End If
             Next iSheet
          End If
          
          'If you do not find a matching value, do not bold the value in the original list;
          'if you do find a value, bold it.
          If bln = False Then
             Cells(iRow, 1).Font.Bold = False
             Else
             Cells(iRow, 1).Font.Bold = True
          End If
       Next iRow
    Application.ScreenUpdating = True
End Sub

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.