Come utilizzare VLOOKUP in VBA (4 modi)

  • Condividi Questo
Hugh West

Per cercare o vedere alcuni valori o elementi specifici, MS Excel offre diverse funzioni. VLOOKUP Ci aiuta a cercare i dati desiderati in qualsiasi set di dati e ci permette di scegliere se cercare una corrispondenza esatta o una corrispondenza approssimativa. Oltre ad usare questa funzione nella formula di Excel, possiamo usarla anche nel codice VBA. In questo articolo vedremo come usare questa funzione Funzione VLOOKUP in VBA.

Scaricate la cartella di lavoro pratica

VLOOKUP in VBA.xlsm

4 modi per utilizzare VLOOKUP in VBA

1. Ricerca manuale dei dati con VLOOKUP in VBA

Abbiamo un dataset di informazioni sui dipendenti con il loro ID, il nome, il reparto, la data di assunzione e lo stipendio. Ora il nostro compito è quello di trovare le informazioni sui dipendenti utilizzando il loro ID manualmente. Per questa sezione, ci limiteremo a trovare lo stipendio del dipendente utilizzando il suo ID.

Fase 1: Selezionare Visual Basic sotto Sviluppatore scheda (scorciatoia Alt + F11 )

Fase 2: Poi si aprirà una finestra. Modulo opzione sotto Inserire pulsante

Fase 3: Ora scrivete il seguente codice nella console VBA e premete il tasto Correre (Scelta rapida F5 )

Codice:

 Sub vlookup_function_1() Dim Employee_id As Long Dim salary As Long Employee_id = 1144 Set myerange = Range("B4:F11") salary = Application.WorksheetFunction.VLookup(Employee_id, myerange, 5, False) MsgBox "Employee ID:" & Employee_id & " Salary " & "$" & salary End Sub 

Passo 4: A questo punto apparirà un messaggio a comparsa che mostrerà le informazioni

Per saperne di più: VLOOKUP per cercare testo in Excel (4 modi semplici)

2. Ricerca di dati con input utilizzando VLOOKUP in VBA

Vediamo ora come cercare o estrarre dati da tabelle o intervalli con l'input. Come nell'immagine, scopriremo il nome dell'id inserito dalla tabella delle informazioni sui dipendenti.

Fase 1: Per prima cosa aprite la console VBA seguendo lo stesso passaggio da 1 a 2.

Fase 2: Ora inserite il seguente codice nella finestra VBA

Codice:

 Sub vlookup_function_2() Set myerange = Range("B4:F11") Set ID = Range("D13") Set Name = Range("D14") Name.Value = Application.WorksheetFunction.VLookup(ID, myerange, 2, False) End Sub 

Fase 3: Ora inserire un ID qualsiasi nella cella D13 ed eseguire il codice

Passo 4: Il Nome che è stato salvato rispetto all'ID verrà mostrato

Per saperne di più: 10 buone pratiche con VLOOKUP in Excel

Letture simili

  • VLOOKUP non funziona (8 motivi e soluzioni)
  • MATCH INDICE vs funzione VLOOKUP (9 esempi)
  • Utilizzare VLOOKUP con più criteri in Excel (6 metodi + alternative)
  • VLOOKUP di Excel per trovare l'ultimo valore nella colonna (con alternative)
  • VLOOKUP di Excel per restituire più valori in verticale

3. Trovare informazioni con la casella di input utilizzando VLOOKUP in VBA

Vediamo come cercare i dati utilizzando la casella di input di VBA. Per la ricerca, è necessario utilizzare l'opzione VLOOKUP Anche in questo caso il set di dati sarà lo stesso, ma l'approccio di ricerca sarà diverso. In questo caso il compito è quello di trovare lo stipendio del dipendente inserendo l'ID e il reparto.

Fase 1: Per prima cosa aprite la finestra VBA seguendo lo stesso passaggio da 1 a 2.

Fase 2: Ora inserite il seguente codice nella console VBA e Correre esso

Codice:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i End Sub 

Fase 3: Viene stampata una stringa combinata con ID e Dipartimento nella prima colonna.

Passo 4: Ora andate di nuovo alla console VBA e inserite il codice completo ed eseguitelo di nuovo

Codice:

 Sub vlookup_function_3() For i = 4 To Cells(Rows.Count, "B").End(xlUp).Row Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Next i Dim ID As Long Dim department As String Dim lookup_val As String Dim salary As Long ID = InputBox("Inserisci l'ID del dipendente") department = InputBox("Inserisci il reparto del dipendente") lookup_val = ID & "_" & department OnErrore GoTo Messaggio controllo: stipendio = Application.WorksheetFunction.VLookup(lookup_val, Range("A:F"), 6, False) MsgBox ("Lo stipendio del dipendente è $" & stipendio) Messaggio: Se Err.Number = 1004 Allora MsgBox ("I dati del dipendente non sono presenti") End If End Sub 

Codice Spiegazione

  • In primo luogo, Cells(i, "A").Value = Cells(i, "B").Value & "_" & Cells(i, "D").Value Con questo codice si memorizzano i valori concatenati di ID e Dipartimento nella colonna A.
  • lookup_val = ID & "_" & dipartimento Questo definisce che il valore di ricerca sarà l'ID e il reparto.
  • salary = Application.WorksheetFunction.VLookup(lookup_val, Range("A: F"), 6, False) qui si memorizza lo stipendio del dipendente abbinato in una variabile denominata stipendio
  • Se Numero Err. = 1004 Allora Si tratta di un controllo di condizione. Stiamo verificando se il numero di errore è 1004 o meno. Nel codice VBA di Excel 1004 significa che il valore cercato non è stato trovato, cancellato o rimosso.

Passo 5: Ora si aprirà una finestra a comparsa come questa immagine. Invio ID e Dipartimento sequenzialmente

Passo 6: Dopo aver premuto il tasto Ok viene mostrato il risultato finale

Passo 7: Se si inserisce il nome sbagliato ID o Dipartimento, verrà visualizzato il seguente messaggio

Per saperne di più: Come eseguire un VLOOKUP con più condizioni in Excel (2 metodi)

4. Trovare informazioni con un pulsante utilizzando VLOOKUP in VBA

Ora vedremo come trovare le informazioni con l'aiuto di un pulsante, invece di eseguire il codice manualmente. Anche in questo caso, il set di dati sarà lo stesso di prima.

Fase 1: Selezionare prima la voce Inserire opzione nell'ambito dell'opzione Sviluppatore scheda

Fase 2: Quindi selezionare la voce Pulsante dall'opzione Inserire

Fase 3: Posizionare il pulsante secondo le proprie esigenze e assegnare il nome al pulsante.

Passo 4: Ora fate clic con il tasto destro del mouse sul pulsante e selezionate Assegnazione di macro

Passo 5: Ora create una nuova macro e chiamatela vlookup_function_4

Passo 6: Scrivere il codice seguente nella console VBA e Correre il codice

Codice:

 Sub vlookup_function_4() Dim rng As Range, FinalResult As Variant, Table_Range As Range, LookupValue As Range Set rng = Sheets("Sheet4").Range("D15") Set Table_Range = Sheets("Sheet4").Range("B4:F11") Set LookupValue = Sheets("Sheet4").Range("D14") FinalResult = Application.WorksheetFunction.VLookup(LookupValue, Table_Range, 5, False) rng = FinalResult End Sub 

Passo 6: Inserire ora un ID qualsiasi e premere il pulsante

Per saperne di più: Uso di VBA VLOOKUP per trovare valori da un altro foglio di lavoro in Excel

Cose da ricordare

Errori comuni Quando mostrano
1004 errore Quando il codice vlookup di VBA non riesce a trovare il valore di lookup, viene visualizzato un errore 1004.
Funzione VLOOKUP non trovata in VBA La funzione Vlookup può essere richiamata in Excel VBA utilizzando WorksheetFunction.
Gestione degli errori L'errore della funzione vlookup può essere controllato utilizzando una funzione goto se restituisce un errore.

Conclusione

Questi sono alcuni modi per utilizzare il VLOOKUP in VBA in Excel. Ho mostrato tutti i metodi con i rispettivi esempi, ma ci possono essere molte altre iterazioni. Ho anche discusso i fondamenti delle funzioni utilizzate. Se avete qualche altro metodo per ottenere questo risultato, non esitate a condividerlo con noi.

Hugh West è un istruttore e analista di Excel di grande esperienza con oltre 10 anni di esperienza nel settore. Ha conseguito una laurea in Contabilità e Finanza e un Master in Economia Aziendale. Hugh ha una passione per l'insegnamento e ha sviluppato un approccio didattico unico che è facile da seguire e capire. La sua conoscenza approfondita di Excel ha aiutato migliaia di studenti e professionisti in tutto il mondo a migliorare le proprie competenze ed eccellere nella propria carriera. Attraverso il suo blog, Hugh condivide le sue conoscenze con il mondo, offrendo esercitazioni gratuite su Excel e formazione online per aiutare le persone e le aziende a raggiungere il loro pieno potenziale.