WorksheetFunction.Match-Methode (Excel)

Sucht Werte innerhalb eines Bezugs oder einer Matrix. Verwenden Sie Übereinstimmung anstelle einer der Lookup-Funktionen , wenn Sie die Position eines Elements in einem Bereich anstelle des Elements selbst benötigen.

Syntax

Ausdruck. Übereinstimmung (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 verwenden, um den gewünschten Wert in einer Tabelle zu finden.
Arg2 Erforderlich Variant Lookup_array: ein zusammenhängender Zellbereich, der mögliche Nachschlagewerte enthält. 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

HinwBemerkungeneise

Lookup_value ist der Wert, den Sie in lookup_array abgleichen möchten. Wenn Sie beispielsweise eine Nummer in einem Telefonbuch nachschlagen, verwenden Sie den Namen der Person als Nachschlagewert, aber die Telefonnummer ist der gewünschte Wert.

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 lookup_value ist. 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 lookup_value ist. 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 lookup_value ist. 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 abgeglichenen Werts innerhalb lookup_array zurück, nicht den Wert selbst. Gibt beispielsweise MATCH("b",{"a","b","c"},0) 2 zurück, die relative Position von "b" innerhalb des Arrays {"a","b","c"}.

Die Übereinstimmung unterscheidet beim Abgleich von Textwerten nicht zwischen Groß- und Kleinbuchstaben.

Wenn Die Übereinstimmung nicht gefunden werden kann, wird der #N/A-Fehlerwert zurückgegeben.

Ist Vergleichstyp gleich 0 und ist als Suchkriterium eine Zeichenfolge angegeben, können Sie im Suchkriterium Platzhalterzeichen, Fragezeichen und Sternchen (*) verwenden. Ein Fragezeichen ersetzt beim Abgleichen ein einzelnes Zeichen und ein Sternchen eine beliebige Zeichenfolge. 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 don't find a matching value, don't 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.