Vba: so verwenden sie den indexabgleich


Sie können die folgende grundlegende Syntax verwenden, um einen INDEX MATCH in VBA durchzuführen:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

In diesem speziellen Beispiel wird nach Werten in den Zellen 2 bis 11 der vierten Spalte des Arbeitsblatts im Bereich B2:B11 gesucht und dann die entsprechenden Werte im Bereich A2:A11 in der fünften Spalte des Arbeitsblatts zurückgegeben.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Führen Sie einen INDEX MATCH mit VBA durch

Angenommen, wir haben den folgenden Datensatz in Excel, der Informationen über Basketballspieler enthält:

Angenommen, wir möchten für jeden Spieler in Spalte D seinen Teamnamen in Spalte A finden und dann den Teamnamen in Spalte E schreiben.

Dazu können wir das folgende Makro erstellen:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:

Beachten Sie, dass dieses Makro nach dem Namen jedes Spielers suchen und dann den Namen des entsprechenden Teams in Spalte E zurückgeben konnte.

Beachten Sie, dass innerhalb der For-Schleife die Cells(i,5).value- Syntax angibt, dass die Teamnamen in der fünften Spalte der Tabelle, also der Spalte E, zurückgegeben werden sollen.

Wenn wir diese Syntax in Cells(i,6).value ändern, werden die Teamnamen in der sechsten Spalte der Tabelle zurückgegeben:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 6).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

Wenn wir dieses Makro ausführen, erhalten wir die folgende Ausgabe:

Beachten Sie, dass die Teamnamen jetzt in der sechsten Spalte der Tabelle (Spalte F) zurückgegeben werden.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in VBA ausführen:

VBA: So überprüfen Sie, ob eine Zeichenfolge eine andere Zeichenfolge enthält
VBA: So zählen Sie die Anzahl der Zeilen im Bereich
VBA: So schreiben Sie COUNTIF- und COUNTIFS-Funktionen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert