Pode utilizar a seguinte sintaxe básica para efetuar um INDEX MATCH em VBA:
Sub IndexMatch() Dim i As Integer ' Efetuar correspondência de índices 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
Este exemplo específico procura os valores nas células 2 a 11 da quarta coluna da folha de cálculo dentro do intervalo B2:B11 e, em seguida, devolve os valores correspondentes no intervalo A2:A11 para a quinta coluna da folha de cálculo.
O exemplo seguinte mostra como utilizar esta sintaxe na prática.
Exemplo: Executar INDEX MATCH usando VBA
Suponha que temos o seguinte conjunto de dados no Excel que contém informações sobre jogadores de basquetebol:
Para cada jogador da coluna D, suponhamos que queremos encontrar o nome da sua equipa na coluna A e depois escrever o nome da equipa na coluna E.
Para o efeito, podemos criar a seguinte macro:
Sub IndexMatch() Dim i As Integer ' Efetuar correspondência de índices 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
Quando executamos esta macro, obtemos a seguinte saída:
Repare que esta macro foi capaz de procurar o nome de cada jogador e depois devolver o nome da equipa correspondente na coluna E.
Observe que dentro do loop For, a sintaxe Células(i,5).valor especifica que queremos que os nomes das equipas sejam devolvidos na quinta coluna da folha de cálculo, ou seja, na coluna E.
Se alterarmos esta sintaxe para Células(i,6).valor então os nomes das equipas serão devolvidos na sexta coluna da folha de cálculo:
Sub IndexMatch() Dim i As Integer ' Efetuar correspondência de índices 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
Quando executamos esta macro, obtemos a seguinte saída:
Repare que os nomes das equipas são agora devolvidos na sexta coluna da folha de cálculo (coluna F).