Sommario
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.xlsm4 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.