molto spesso con Vlookup devi mettere i valori in ordine alfabetico o crescente
Questo puo' essere necessario quando si cerca una corrispondenza anche non esatta (quindi col parametro "Intervallo" assente o impostato su 1 /Vero); se invece cerchi la corrispondenza esatta (col parametro "Intervallo" impostato su 0 /Falso) l' ordine dei dati non e' importante.
oppure non riconosce il format della cella e come risultato non dá il corrispondente valore esatto
La formattazione non modifica la sostanza dei dati, ma solo la loro forma; in un VLOOKUP (come in qualsiasi altra formula) devi mirare la sostanza, non l' apparenza.
Ad esempio, se la matrice in cui cerchi contiene una data, il "valore" da usare come ricerca deve essere analogamente una data e non una stringa.
E se la data e' visualizzata mettiamo nel formato "ggg" (quindi alla data 14-01-2014 visualizza "mer") una ricerca fatta con la stringa "mer" non restituirebbe nulla.
Se spieghi quale problema pratico vuoi superare potremmo essere di maggiore aiuto; il vba nelle situazioni che descrivi sarebbe solo un ulteriore elemento di confusione.
Ciao