VLookup em VBA Excel

Vlookup é uma função de planilha no Excel, mas também pode ser usada no VBA, a funcionalidade do Vlookup é semelhante à funcionalidade do VBA e na planilha, já que é uma função de planilha, o método para usar o Vlookup no VBA é através de Application.WorksheetFunction método e os argumentos permanecem os mesmos.

Função VLOOKUP no Excel VBA

A função VLOOKUP no Excel é usada para pesquisar um valor em uma matriz e retornar seu valor correspondente de outra coluna. O valor a ser pesquisado deve estar presente na primeira coluna. Também é necessário mencionar se deve procurar uma correspondência exata ou uma correspondência aproximada. A função de planilha VLOOKUP pode ser usada na codificação VBA. A função não é construída em VBA e, portanto, só pode ser chamada usando a planilha.

A função VLOOKUP no Excel tem a seguinte sintaxe:

Em que, lookup_value é o valor a procurar, table_arrray é a tabela, col_index_num é o número da coluna do valor de retorno, range_lookup significa se a correspondência é exata ou aproximada. range_lookup pode ser TRUE / FALSE ou 0/1.

No código VBA, a função VLOOKUP pode ser usada como:

Application.WorksheetFunction.vlookup (lookup_value, table_array, col_index_num, range_lookup)

Como usar o VLookup no Excel VBA?

Abaixo estão alguns exemplos de código VLookup no Excel VBA.

Você pode baixar este VLookup no Excel VBA Template aqui - VLookup no Excel VBA Template

Código VLookup no Excel VBA Exemplo # 1

Vamos ver como podemos chamar a função de planilha VLOOKUP no Excel VBA.

Suponha que você tenha um dado de identificação dos alunos, nome e as notas médias obtidas por eles.

Agora, você deseja consultar as notas obtidas por um aluno, com o ID 11004.

Para pesquisar o valor, siga as seguintes etapas:

  • Vá para a guia Desenvolvedor e clique em Visual Basic.

  • Na janela do VBA, vá para Inserir e clique em Módulo.

  • Agora, escreva o código VBA VLOOKUP. O seguinte código VBA VLOOKUP pode ser usado.

Sub vlookup1 ()

Dim student_id enquanto

Marcas escuras como longas

student_id = 11004

Definir myrange = Range (“B4: D8”)

marcas = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

End Sub

Em primeiro lugar, defina um ID de aluno, que é o valor a ser pesquisado. Portanto, nós definimos,

student_id = 11004

A seguir, definimos o intervalo em que o valor e o valor de retorno existem. Uma vez que nossos dados estão presentes nas células B4: D8, definimos um intervalo-mirra como:

Definir myrange = Range (“B4: D8”)

Finalmente, inserimos a função PROCV usando a função Planilha em uma variável, marcada como:

marcas = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)

Para imprimir as marcas em uma caixa de mensagem, vamos usar o seguinte comando:

MsgBox “Student with ID:” & student_id & ”obtido” & marcas & ”marcas”

Ele retornará:

Aluno com ID: 11004 obteve 85 notas.

Agora, clique no botão Executar.

Você notará que uma caixa de mensagem aparecerá na planilha do Excel.

Código VLookup no Excel VBA Exemplo # 2

Suponha que você tenha os dados dos nomes dos funcionários e seus salários. Esses dados são fornecidos pelas colunas B e C. Agora, você precisa escrever um código VBA VLOOKUP de forma que dado o nome do funcionário em uma célula, F4, o salário do funcionário será retornado na célula G4.

Vamos escrever o código VBA VLOOKUP.

  1. Defina o intervalo em que os valores estão presentes, ou seja, colunas B e C.

Definir myrange = Range (“B: C”)

  1. Defina o nome do funcionário e insira o nome da célula F4.

Definir nome = intervalo (“F4”)

  1. Defina salário como célula G4.

Definir salário = Faixa (“G4”)

  1. Agora, chame a função VLOOKUP usando WorksheetFunction em VBA e insira-a em salary.Value. Isso retornará o valor (saída da função Vlookup) na célula G4. A seguinte sintaxe pode ser usada:

salary.Value = Application.WorksheetFunction.VLookup (name, myrange, 2, False)

  1. Agora, execute o módulo. A célula G4 conterá o salário do funcionário após a execução do código VBA VLOOKUP.

Suponha que você altere o valor da célula F4 para “David” na planilha e execute novamente o código, ele retornará o salário de David.

Código VLookup no Excel VBA Exemplo # 3

Suponha que você tenha os dados do funcionário de sua empresa, contendo sua carteira de identidade, nomes, Departamento e salário. Usando o Vlookup no VBA, você deseja obter os detalhes do salário de um funcionário usando seu nome e departamento.

Visto que a função vlookup no Excel busca o lookup_value em apenas uma única coluna, que é a primeira coluna do table_array, é necessário que você primeiro faça uma coluna contendo o “Nome” e “Departamento” de cada funcionário.

No VBA, vamos inserir os valores “Nome” e “Departamento” na coluna B da planilha.

Para fazer isso, vá para a guia Desenvolvedor e clique em Visual Basic. Em seguida, vá para inserir e clique em Módulo para iniciar um novo módulo.

Vamos agora escrever o código, de forma que a coluna B contenha os valores da coluna D (nome) e da coluna E.

A sintaxe é fornecida como:

Em primeiro lugar, use um loop 'for' de i = 4, uma vez que os valores estão começando na 4ª linha neste caso. O loop continuará até o final da última linha da coluna C. Portanto, a variável i pode ser usada como um número de linha dentro do loop 'for'.

Em seguida, insira o valor a ser atribuído à Célula (número_da_linha, coluna B), que pode ser dado como Células (i, “B”). Valor, como Célula (número_da_linha, coluna D) & “_” & Célula (número_da_linha, coluna E )

Suponha que você queira atribuir a célula B5 = D5 & “_” & E5, você pode simplesmente usar o código como:

Células (5, “B”). Valor = Células (5, “D”). Valor & “_” e Células (5, “E”). Valor

Agora, vamos procurar o valor de pesquisa na matriz B5: E24, você precisa primeiro inserir o valor de pesquisa. Vamos pegar o valor (Nome e Departamento) do usuário. Para fazer isso,

  1. defina três variáveis, nome, departamento e valor_procurado como uma string.
  2. Pegue a entrada de nome do usuário. Use o código:

name = InputBox (“Digite o nome do funcionário”)

O conteúdo da caixa de entrada “Enter the ..” será exibido na caixa de prompt quando você executar o código. A string inserida no prompt será atribuída à variável de nome.

  1. Tire o departamento do usuário. O pode ser feito da mesma forma que acima.

departamento = InputBox (“Digite o departamento do funcionário”)

  1. Atribua o nome e o departamento com “_” como separador para a variável lookup_val usando a seguinte sintaxe:

lookup_val = nome & “_” & departamento

  1. Escreva a sintaxe vlookup para pesquisar o valor_procurado no intervalo B5: E24 retorne em um salário variável.

Inicialize o salário variável:

Dim salary enquanto

Use a função Vlookup para encontrar lookup_val. O table_array pode ser dado como Range (“B: F”) e o salário está presente na 5ª coluna. A seguinte sintaxe pode ser usada:

salary = Application.WorksheetFunction.VLookup (lookup_val, Range (“B: F”), 5, False)

  1. Para imprimir o salário em uma caixa de mensagem, use a sintaxe:

MsgBox (O salário do funcionário é ”e salário)

Agora, execute o código. Uma caixa de prompt aparecerá na planilha na qual você pode inserir o nome. Depois de inserir o nome (diga Sashi) e clique em OK.

Irá abrir outra caixa na qual você pode entrar no departamento. Depois de entrar no departamento, diga TI.

Vai imprimir o salário do funcionário.

Se o Vlookup puder localizar qualquer funcionário com o nome e departamento, ele apresentará um erro. Suponha que você dê o nome “Vishnu” e o departamento “TI”, ele retornará o erro em tempo de execução '1004'.

Para resolver esse problema, você pode especificar no código, que neste tipo de erro, imprima “Valor não encontrado”. Para fazer isso,

  1. Antes de usar a sintaxe vlookup, use o seguinte código-

On Error GoTo Message

Verifica:

O código final (do Check :) será monitorado e, se receber algum erro, irá para a instrução “mensagem”

  1. No final do código (Before End Sub), especifique que, se o número do erro for 1004, imprima na caixa de mensagem “Dados do funcionário ausentes”. Isso pode ser feito usando a sintaxe:

Mensagem:

If Err.Number = 1004 Then

MsgBox (“Dados do funcionário ausentes”)

Fim se

Módulo 1:

Sub vlookup3 ()

Para i = 4 para as células (Rows.Count, “C”). End (xlUp) .Row

Células (i, “B”). Valor = Células (i, “D”). Valor & “_” e Células (i, “E”). Valor

Próximo nome do iDim As String

Dim departamento como string

Dim lookup_val As String

Dim salary As Longname = InputBox (“Digite o nome do funcionário”)

departamento = InputBox (“Digite o departamento do funcionário”)

lookup_val = name & “_” & departmentOn Error GoTo Message

Verifica:

salary = Application.WorksheetFunction.VLookup (lookup_val, Range (“B: F”), 5, False)

MsgBox (“O salário do funcionário é” e salário) Mensagem:

If Err.Number = 1004 Then

MsgBox (“Dados do funcionário ausentes”)

End IfEnd Sub

Coisas para lembrar sobre VLookup no Excel VBA

  • A função Vlookup pode ser chamada no Excel VBA usando WorksheetFunction.
  • A sintaxe da função vlookup permanece a mesma no Excel VBA.
  • Quando o código VBA vlookup não consegue encontrar o valor_procurado, ele apresentará o erro 1004.
  • O erro na função vlookup pode ser gerenciado usando uma instrução goto se retornar um erro.