Vba: indexmatching gebruiken
U kunt de volgende basissyntaxis gebruiken om een INDEX MATCH in VBA uit te voeren:
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
Dit specifieke voorbeeld zoekt naar waarden in de cellen 2 tot en met 11 van de vierde kolom van het werkblad in het bereik B2:B11 en retourneert vervolgens de overeenkomstige waarden in het bereik A2:A11 in de vijfde kolom van het werkblad.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Voer een INDEX MATCH uit met VBA
Stel dat we de volgende dataset in Excel hebben met informatie over basketbalspelers:
Stel dat we voor elke speler in kolom D de teamnaam in kolom A willen vinden en schrijf vervolgens de teamnaam in kolom E.
We kunnen hiervoor de volgende macro maken:
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
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Merk op dat deze macro naar de naam van elke speler kon zoeken en vervolgens de naam van het bijbehorende team in kolom E kon retourneren.
Merk op dat binnen de For-lus de syntaxis Cells(i,5).value specificeert dat we willen dat de teamnamen worden geretourneerd in de vijfde kolom van het spreadsheet, dat wil zeggen de kolom E.
Als we deze syntaxis wijzigen in Cells(i,6).value , worden de teamnamen geretourneerd in de zesde kolom van de spreadsheet:
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
Wanneer we deze macro uitvoeren, ontvangen we de volgende uitvoer:
Merk op dat de teamnamen nu in de zesde kolom van de spreadsheet worden weergegeven (kolom F).
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in VBA kunt uitvoeren:
VBA: hoe controleer je of een string een andere string bevat?
VBA: het aantal rijen binnen bereik tellen
VBA: Hoe COUNTIF- en COUNTIFS-functies te schrijven