Funkcja VBA Vlookup

Funkcja Vlookup w VBA to jedna z funkcji arkuszowych VBA. Wyszukuje określoną wartość w pierwszej kolumnie tabeli/zakresu komórek i zwraca wartość z określonej kolumny tego samego wiersza.

Argumenty funkcji to:

    • Arg1 – wartość do wyszukania w pierwszej kolumnie tabeli/zakresu. Argument obowiązkowy;
    • Arg2 – tabela/zakres komórek. Argument obowiązkowy
    • Arg3 – numer kolumny, z której ma być zwrócony wynik. Argument obowiązkowy
    • Arg4 – wartość logiczna True lub False. Dla wartości True wyszukiwana będzie wartość dopasowana, dla wartości False – dokładna. Argument opcjonalny, wartość domyślne to True.

W stosowaniu funkcji ważne są 2 sprawy:

    • szukana wartość musi być zawsze w pierwszej kolumnie tabeli/zakresu
    • jeżeli szukana wartość występuje kilka razy – funkcja zawsze zwróci tylko odwołanie do pierwszego jej wystąpienia
    • jeżeli wyszukiwana wartość nie występuje w zakresie – funkcja zwróci błąd wykonania 1004 – konieczne jest jego obsłużenie w kodzie

Odpowiednikiem funkcji w Excelu jest funkcja Wyszukaj.Pionowo.


Kurs Makra i VBA w Excelu dla początkujących

 

Błąd wykonania 1004

Błąd wykonania 1004

Błąd ten pojawia się w sytuacji, gdy wprawdzie kod jest prawidłowy, ale dane będące argumentami np.funkcji arkuszowych odwołują się do błędnych danych w arkuszu.
Dla przykładowego kodu może to wyglądać tak:

Public Sub MojaFunkcja()
Wynik = WorksheetFunction.VLookup(“lipiece”, Worksheets(“Arkusz4”).Range(“A1:B13”), 2, False)
End Sub

Podczas wykonania tego fragmentu kodu pojawił się błąd jw., gdyż w tabeli nie ma komórki  z wartością “lipiece”. Tu w celi eliminacji błędu można zmienić ostatni argument funkcji VLookup na True (choć tu trzeba uważać). Gorzej jeżeli np.w funkcji pojawi się np.za duża liczba kolumn (większa od ilości kolumn tabeli) – tu zdecydowanie trzeba skorygować kod.
Generalnie każdy przypadek wystąpienia takiego błędu trzeba dokładnie przeanalizować. No i włączyć obsługę błędów, która zabezpieczy kod przed różnymi niespodziankami.