Come utilizzare xlookup in vba (con esempi)
È possibile utilizzare la seguente sintassi di base per eseguire XLOOKUP utilizzando VBA:
Sub Xlookup()
Range(" F2 ").Value = WorksheetFunction.Xlookup(Range(" E2 "), Range(" A2:A11 "), Range(" C2:C11 "))
End Sub
Questo esempio particolare cerca il valore nella cella E2 nell’intervallo A2:A11 e trova il valore corrispondente nell’intervallo C2:C11 , quindi assegna il risultato alla cella F2 .
L’esempio seguente mostra come utilizzare questa sintassi nella pratica.
Esempio: come utilizzare XLOOKUP in VBA
Supponiamo di avere il seguente set di dati in Excel che contiene informazioni su vari giocatori di basket:
Supponiamo di voler cercare nel set di dati il nome della squadra “Kings” e restituire il valore corrispondente nella colonna degli assist.
Per fare ciò possiamo creare la seguente macro:
Sub Xlookup()
Range(" F2 ").Value = WorksheetFunction.Xlookup(Range(" E2 "), Range(" A2:A11 "), Range(" C2:C11 "))
End Sub
Quando eseguiamo questa macro, riceviamo il seguente output:
La macro restituisce correttamente un valore di 3 assist per i Kings.
Se modifichiamo il nome della squadra nella cella E2 e poi eseguiamo nuovamente la macro, troverà correttamente il valore helper per il nuovo nome della squadra.
Ad esempio, supponiamo di cambiare il nome della squadra in “Guerrieri” ed eseguire nuovamente la macro:
La macro restituisce correttamente un valore di 4 assist per i Warriors.
Tieni presente che puoi anche aggiungere un quarto argomento facoltativo alla funzione Xlookup per specificare il valore che dovrebbe essere visualizzato se non viene trovata alcuna corrispondenza.
Ad esempio, puoi utilizzare la seguente macro per eseguire una funzione CERCA.X e restituire “Nessuno” se non viene trovata alcuna corrispondenza:
Sub Xlookup()
Range(" F2 ").Value = WorksheetFunction.Xlookup(Range(" E2 "), Range(" A2:A11 "), Range(" C2:C11 "), "None")
End Sub
Sentiti libero di sostituire “Nessuno” con qualunque valore desideri visualizzare.
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in VBA:
VBA: come utilizzare la corrispondenza degli indici
VBA: come utilizzare CERCA.VERT
VBA: come utilizzare CERCA.VERT da un altro foglio