'se la cartella dei dati è chiusa bisogna quindi aprirla:
Sub vlookUP_wkFunction()
Dim wb As Workbook, dati As Range
Application.ScreenUpdating = False
Set wb = Workbooks.Open("C:Excel
ubrica.xlsx")
Set dati = wb.Sheets("Foglio1").Range("A1:C10")
Windows(1).Visible = False
Application.ScreenUpdating = True
[cella] = WorksheetFunction.VLookup([A1], dati, 2, False)
wb.Close False
End Sub
'se la cartella dei dati fosse aperta, allora si potrebbe....
Sub vlookUP_wkAperto()
[cella] = WorksheetFunction.VLookup([a3], Workbooks("rubrica.xlsx").Sheets("Foglio1").Range("A1:C10"), 2, False)
End Sub
Lascio a voi "unire" le due routine...
Oppure utilizzate il metodo Formula, variante Inglese o locale (papale papale alla formula in Excel italiano) :
Sub vlookUP_Formula()
[cella].Formula = "=vlookup(A1,'C:Excel[rubrica.xlsx]Foglio1'!$A1:$C10,2,FALSE)"
'eventuale conversione in valore
'[cella] = [cella].Value
End Sub
Sub vlookUP_FormulaLocal()
[cella].FormulaLocal = "=CERCA.VERT(A1;'C:Excel[rubrica.xlsx]Foglio1'!A1:C10;2;FALSO)"
'eventuale conversione in valore
'[cella] = [cella].Value
End Sub |