Excel – error 1004 podczas funkcji Vlookup
Proszę o pomoc w następujacej kwestii:
W excelu mam makro w Vbasic które uźywa następującej funkcji: Application.WorksheetFunction.VLookup(ComboBox1.Value, Worksheets("Katalog").Range("B:D"), 3, 1)
Jeźeli poszukiwana wartość jest tekstem np. A60001 to wszystko gra i zwracana jest odpowiednia wartość z tabeli (wartość wyszukiwana pobierana jest z combobox'a załadowanego danymi z przeszukiwanej przez Vlookup kolumny)
Jeźeli poszukiwana wartość jest liczbą np. 60001 to następuje run–time błąd 1004 "Pobranie właściwości Vlookup klasy WorksheetFunction nie jest moźliwe"
Proszę o pomoc jak to obejść. Podobnie zresztą zachowuje się sam excel przy funkcji Vlookup wpisanej prosto do komórki (wyszukuje po wartościach tekstowych, zgłasza błąd przy wartościach liczbowych)
W excelu mam makro w Vbasic które uźywa następującej funkcji: Application.WorksheetFunction.VLookup(ComboBox1.Value, Worksheets("Katalog").Range("B:D"), 3, 1)
Jeźeli poszukiwana wartość jest tekstem np. A60001 to wszystko gra i zwracana jest odpowiednia wartość z tabeli (wartość wyszukiwana pobierana jest z combobox'a załadowanego danymi z przeszukiwanej przez Vlookup kolumny)
Jeźeli poszukiwana wartość jest liczbą np. 60001 to następuje run–time błąd 1004 "Pobranie właściwości Vlookup klasy WorksheetFunction nie jest moźliwe"
Proszę o pomoc jak to obejść. Podobnie zresztą zachowuje się sam excel przy funkcji Vlookup wpisanej prosto do komórki (wyszukuje po wartościach tekstowych, zgłasza błąd przy wartościach liczbowych)
Odpowiedzi: 2
Dzięki wielkie :)
Rozwiązanie pomogło.
Chyba rzeczywiście przyczyną była niezgodność typów danych.
Niestety Excel wprost nie podpowiada jaki typ zapisuje w komórce.
Dopiero test CZY.TEXT lub CZY.LICZBA ujawnia prawdziwą naturę wartości komórki.
Formatowanie bywa zawsze zawodne.
Rozwiązanie pomogło.
Chyba rzeczywiście przyczyną była niezgodność typów danych.
Niestety Excel wprost nie podpowiada jaki typ zapisuje w komórce.
Dopiero test CZY.TEXT lub CZY.LICZBA ujawnia prawdziwą naturę wartości komórki.
Formatowanie bywa zawsze zawodne.
Hej!!
Jeśli wyszukujesz tylko wartości (liczby) to wystarczy:
ComboBox1.Value*1
Jeśli wartości i tekst to pomoźe zabieg:
Pozdrawiam
Jeśli wyszukujesz tylko wartości (liczby) to wystarczy:
ComboBox1.Value*1
Jeśli wartości i tekst to pomoźe zabieg:
szukana = ComboBox1.Value
On Error Resume Next
szukana = szukana * 1
On Error GoTo 0
Application.WorksheetFunction.VLookup(szukana, Worksheets("Katalog").Range("B:D"), 3, 1)
Pozdrawiam
Strona 1 / 1