VBA Application.Match - Guia passo a passo com exemplos

Aplicativo Excel VBA.Match

Uma das melhores coisas sobre o VBA é que ele tem sua própria função e também nos permite acessar todas as funções da planilha na classe “Função da planilha”. Você já deve ter usado a função MATCH como uma função de planilha, mas não é uma função VBA, portanto, precisamos acessar a classe de função de planilha. Neste artigo, mostraremos como usar a função MATCH no VBA usando o método Application.

Recapitulação rápida da função MATCH

MATCH é uma função de pesquisa que procura a posição do valor de pesquisa na matriz de pesquisa mencionada. Por exemplo, observe a imagem abaixo dos dados.

Nos dados acima, temos os meses de A2 a A6, e se quisermos saber em que local ocorre o mês de “março”, podemos usar a função MATCH.

Abaixo está a sintaxe da função MATCH.

MATCH (valor de pesquisa, matriz de pesquisa, (tipo de correspondência))
  • Valor de pesquisa: para qual valor estamos procurando a posição na matriz de pesquisa.
  • Matriz de pesquisa: em que matriz procuramos a posição do valor de pesquisa.
  • (Tipo de correspondência): Para isso, podemos fornecer três argumentos.
  1. 1 = menor que
  2. 0 = correspondência exata
  3. -1 = Maior que

Na maioria das vezes, usamos apenas “0 correspondência exata”.

Como usar a função Application.Match no VBA?

Exemplo 1

Veja os dados abaixo no Excel.

A partir dos dados acima, precisamos encontrar a posição do mês “março” no intervalo de células de A2 a A6. Como precisamos de resultados nas células D2 imediatamente, inicie o código como Faixa (“D2”). Valor =.

Para chegar o valor na célula D2, precisamos usar a função de planilha MATCH, para acessá-la primeiro, precisamos acessar o objeto APPLICATION e depois o objeto WORKSHEET FUNCTION.

Insira ponto para ver uma lista de funções da planilha.

Escolha “Match” na lista.

Um dos problemas no VBA ao usar funções de planilha é que não vemos a sintaxe exata como vemos com a função de planilha. Esta é uma das razões pelas quais explicamos a sintaxe apenas no início.

Portanto, o primeiro argumento é o valor de pesquisa, ou seja , para qual valor estamos procurando o local. Neste caso, estamos procurando encontrar o local para “Mar” que está na célula C2, então forneça a referência da célula.

O próximo argumento é lookup array, ou seja , em qual intervalo estamos procurando a posição de um valor de lookup , para este suprimento de células de A2 a A6.

O último argumento será uma correspondência exata, então forneça 0.

Código:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, terminamos com a fórmula.

Execute o código por meio da tecla F5 e veja o que obtemos.

Portanto, obtivemos o resultado como 3 porque o valor “Mar” está no lugar da posição na faixa de A2 a A6.

Esta função MATCH pode fornecer a posição do valor de pesquisa. No entanto, a função MATCH amplamente utilizada com a função VLOOKUP para fornecer o número do índice da coluna com base no cabeçalho da coluna.

Exemplo # 2

Agora veremos como usar MATCH como uma função de suporte para a função VLOOKUP.

Veja os dados abaixo.

Na tabela acima, estamos olhando para as vendas do mês de “fevereiro” do ano 2018, então precisamos usar a função VLOOKUP. VLOOKUP também é uma função de planilha, então acesse-a da mesma forma que acessamos a função MATCH.

O valor de pesquisa será a célula G2, portanto, forneça o endereço da célula.

Código:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Assim, a função MATCH fornece o número da coluna do intervalo A1 a D1 para o mês “fevereiro”. Vamos executar o código e ver como ele obtém os números das colunas automaticamente.

Pronto, temos um resultado da coluna número 2 graças ao fornecimento automático do número da coluna da função MATCH.

Coisas para lembrar

  • A função MATCH procura a posição do valor de pesquisa na tabela de matriz selecionada.
  • A função MATCH é usada principalmente com a função VLOOKUP para fornecer o número do índice da coluna automaticamente usando o título da coluna.
  • A função MATCH está disponível como uma função de planilha em VBA.

Artigos interessantes...