CERCA.VERT in Excel VBA - Come scrivere il codice CERCA.VERT in VBA?

Vlookup è una funzione del foglio di lavoro in Excel ma può essere utilizzata anche in VBA, la funzionalità di Vlookup è simile alla funzionalità in VBA e nel foglio di lavoro, poiché si tratta di una funzione del foglio di lavoro il metodo per utilizzare Vlookup in VBA è tramite Application. metodo e gli argomenti rimangono gli stessi.

Funzione CERCA.VERT in Excel VBA

La funzione CERCA.VERT in Excel viene utilizzata per cercare un valore in una matrice e restituire il valore corrispondente da un'altra colonna. Il valore da cercare dovrebbe essere presente nella prima colonna. È inoltre necessario indicare se cercare una corrispondenza esatta o una corrispondenza approssimativa. La funzione del foglio di lavoro CERCA.VERT può essere utilizzata nella codifica VBA. La funzione non è VBA incorporata e quindi può essere chiamata solo utilizzando il foglio di lavoro.

La funzione CERCA.VERT in Excel ha la seguente sintassi:

In cui, lookup_value è il valore da cercare, table_arrray è la tabella, col_index_num è il numero di colonna del valore restituito, range_lookup indica se la corrispondenza è esatta o approssimativa. range_lookup può essere VERO / FALSO o 0/1.

Nel codice VBA, la funzione CERCA.VERT può essere utilizzata come:

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

Come utilizzare VLookup in Excel VBA?

Di seguito sono riportati alcuni esempi del codice VLookup in Excel VBA.

Codice VLookup in Excel VBA Esempio n. 1

Vediamo come possiamo chiamare la funzione del foglio di lavoro CERCA.VERT in Excel VBA.

Supponiamo che fornisca dati sull'ID, sul nome e sulla media dei voti ottenuti dagli studenti.

Ora, vuoi cercare i voti ottenuti da uno studente con ID 11004.

Per cercare il valore, attenersi alla seguente procedura:

  • Vai alla scheda Sviluppatore e fai clic su Visual Basic.
  • Sotto la finestra VBA, vai su Inserisci e fai clic su Modulo.
  • Ora scrivi il codice VBA VLOOKUP. È possibile utilizzare il seguente codice VBA VLOOKUP.

Sub vlookup1 ()
Dim student_id As Long
Dim segna As Long
student_id = 11004
Imposta myrange = Range ("B4: D8")
marks = Application.WorksheetFunction.VLookup (student_id, myrange, 3, False)
End Sub

In primo luogo, definire un ID studente, che è il valore da cercare. Pertanto, definiamo,

student_id = 11004

Successivamente, definiamo l'intervallo in cui esistono il valore e il valore restituito. Poiché i nostri dati sono presenti nelle celle B4: D8, definiamo un intervallo- myrange come:

Imposta myrange = Range ("B4: D8")

Infine, inseriamo la funzione CERCA.VERT utilizzando la funzione del foglio di lavoro in una variabile, contrassegnata come:

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

Per stampare i segni in una finestra di messaggio, utilizziamo il seguente comando:

MsgBox "Studente con ID:" e student_id & "ha ottenuto" e voti e "voti"

Tornerà:

Uno studente con ID: 11004 ha ottenuto 85 punti.

Ora fai clic sul pulsante Esegui.

Noterai che nel foglio Excel apparirà una finestra di messaggio.

Codice VLookup in Excel VBA Esempio n. 2

Supponiamo di avere i dati sui nomi dei dipendenti e sul loro stipendio. A questi dati vengono assegnate le colonne B e C. Ora, è necessario scrivere un codice CERCA.VERT VBA tale che, dato il nome del dipendente in una cella, F4, lo stipendio del dipendente venga restituito nella cella G4.

Scriviamo il codice CERCA.VERT VBA.

  1. Definire l'intervallo in cui sono presenti i valori, ovvero le colonne B e C.

Imposta myrange = Range ("B: C")

  1. Definisci il nome del dipendente e inserisci il nome dalla cella F4.

Imposta nome = Intervallo ("F4")

  1. Definisci stipendio come cella G4.

Imposta stipendio = Intervallo ("G4")

  1. Ora, chiama la funzione CERCA.VERT utilizzando WorksheetFunction in VBA e inseriscilo in salary.Value. Questo restituirà il valore (output della funzione Vlookup) nella cella G4. È possibile utilizzare la seguente sintassi:

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

  1. Ora esegui il modulo. La cella G4 conterrà lo stipendio del dipendente dopo aver eseguito il codice VBA VLOOKUP.

Supponiamo di modificare il valore della cella F4 in "David" nel foglio di lavoro e di rieseguire il codice, e restituirà lo stipendio di David.

Codice VLookup in Excel VBA Esempio n. 3

Supponi di avere i dati del dipendente della tua azienda, con il loro ID, i nomi, il dipartimento e lo stipendio. Usando Vlookup in VBA, vuoi ottenere i dettagli dello stipendio di un dipendente usando il suo nome e dipartimento.

Poiché la funzione vlookup in Excel cerca il lookup_value in una sola colonna, che è la prima colonna di table_array, è necessario prima creare una colonna contenente il "Nome" e il "Dipartimento" di ciascun dipendente.

In VBA, inseriamo i valori "Nome" e "Dipartimento" nella colonna B del foglio di lavoro.

Per fare ciò, vai alla scheda Sviluppatore e fai clic su Visual Basic. Quindi vai su Inserisci e fai clic su Modulo per avviare un nuovo modulo.

Scriviamo ora il codice, in modo tale che la colonna B contenga i valori della colonna D (nome) e della colonna E.

La sintassi è data come:

In primo luogo, utilizzare un ciclo "for" da i = 4 poiché i valori iniziano dalla quarta riga in questo caso. Il ciclo continuerà fino alla fine dell'ultima riga della colonna C. Quindi, la variabile I può essere utilizzata come numero di riga all'interno del ciclo "for".

Quindi inserisci il valore da assegnare per Cella (numero_riga, colonna B), che può essere dato come Celle (i, "B"). Valore, come Cella (numero_riga, colonna D) & "_" & Cella (numero_riga, colonna E ).

Supponiamo di voler assegnare la cella B5 = D5 e "_" ed E5, puoi semplicemente utilizzare il codice come:

Celle (5, "B"). Valore = Celle (5, "D"). Valore & "_" & Celle (5, "E"). Valore

Ora, cerchiamo il valore di ricerca nell'array B5: E24. Devi prima inserire il valore di ricerca. Prendiamo il valore (Nome e Reparto) dall'utente. Per fare questo,

  1. definire tre variabili, nome, reparto e lookup_val come stringa.
  2. Prendi il nome inserito dall'utente. Usa il codice:

name = InputBox ("Immettere il nome del dipendente")

Il contenuto nella casella di immissione "Immettere il …" verrà visualizzato nella casella di richiesta quando si esegue il codice. La stringa inserita nel prompt verrà assegnata alla variabile nome.

  1. Prendi il reparto dall'utente. Può essere fatto in modo simile come sopra.

dipartimento = InputBox ("Inserisci il dipartimento del dipendente")

  1. Assegna il nome e il reparto con "_" come separatore alla variabile lookup_val utilizzando la seguente sintassi:

lookup_val = name & "_" & department

  1. Scrivi la sintassi di vlookup per cercare lookup_val nell'intervallo B5: E24 lo restituisce in uno stipendio variabile.

Inizializza lo stipendio variabile:

Dim stipendio As Long

Usa la funzione Vlookup per trovare lookup_val. Il table_array può essere dato come Range ("B: F") e lo stipendio è presente nella quinta colonna. È quindi possibile utilizzare la seguente sintassi:

stipendio = Application.WorksheetFunction.VLookup (lookup_val, Range ("B: F"), 5, False)

  1. Per stampare lo stipendio in una finestra di messaggio, utilizza la sintassi:

MsgBox (Lo stipendio del dipendente è "e stipendio)

Ora esegui il codice. Apparirà una finestra di messaggio nel foglio di lavoro in cui è possibile inserire il nome. Dopo aver inserito il nome (Say Sashi) e fare clic su OK.

Si aprirà un'altra casella in cui potrai entrare nel reparto. Dopo essere entrato nel dipartimento, dì IT.

Stamperà lo stipendio del dipendente.

Se Vlookup riesce a trovare un dipendente con il nome e il dipartimento, restituirà un errore. Supponiamo che tu dia il nome "Vishnu" e il reparto "IT", restituirà l'errore di runtime "1004".

Per risolvere questo problema, è possibile specificare nel codice, che su questo tipo di errore, stampare invece "Valore non trovato". Per fare questo,

  1. Prima di utilizzare la sintassi di vlookup, utilizzare il codice seguente:

On Error GoTo Message

Dai un'occhiata:

Il codice finale (di Check :) verrà monitorato, e se riceve un errore, andrà all'istruzione "message"

  1. Alla fine del codice (Before End Sub), specificare che se il numero di errore è 1004, stampare nella casella del messaggio "Dati del dipendente non presenti". Questo può essere fatto usando la sintassi:

Messaggio:

Se Err.Number = 1004 Allora

MsgBox ("Dati dipendenti non presenti")

Finisci se

Modulo 1:

Sub vlookup3 ()
For i = 4 To Cells (Rows.Count, "C"). End (xlUp) .Row
Cells (i, "B"). Value = Cells (i, "D"). Value & "_ "& Celle (i," E "). Valore
Next iDim name As String
Dim department As String
Dim lookup_val As String
Dim salary As Longname = InputBox (" Enter the name of the dipendente ")
department = InputBox (" Enter the department of il dipendente ")
lookup_val = name &" _ "& departmentOn Error GoTo Message
check:
salary = Application.WorksheetFunction.VLookup (lookup_val, Range (" B: F "), 5, False)
MsgBox (" The salary of the dipendente is "E stipendio) Messaggio:
Se Err.Number = 1004 Then
MsgBox (" Dati del dipendente non presenti ")
End IfEnd Sub

Cose da ricordare su VLookup in Excel VBA

  • La funzione Vlookup può essere chiamata in Excel VBA utilizzando WorksheetFunction.
  • La sintassi della funzione vlookup rimane la stessa in Excel VBA.
  • Quando il codice VBA vlookup non riesce a trovare lookup_value, restituirà un errore 1004.
  • L'errore nella funzione vlookup può essere gestito utilizzando un'istruzione goto se restituisce un errore.

Articoli interessanti...