Funkcja Excel VBA LOOKUP
Lookup to funkcja, która pomaga nam pobrać dane z głównej tabeli na podstawie pojedynczej wartości odnośnika. Funkcja VBA LOOKUP nie wymaga takiej struktury danych, dla funkcji LOOKUP nie ma znaczenia, czy kolumna wyników znajduje się po prawej czy lewej stronie wartości wyszukiwania, mimo to może wygodnie pobierać dane.
Działa to podobnie do funkcji WYSZUKAJ.PIONOWO, ale co ważniejsze, jest to elastyczne w strukturze danych. Kiedy mówimy elastyczny w strukturze danych, oznacza to, że WYSZUKAJ.PIONOWO wymaga wszystkich wartości po prawej stronie wartości wyszukiwania w głównej tabeli, a wszystko, co pozostało do wartości wyszukiwania WYSZUKAJ.PIONOWO, nie może jej znaleźć.

Składnia
Jeśli już szukałeś formuły LOOKUP w edytorze VBA, jestem pewien, że oszalałeś, ponieważ w VBA istnieje formuła o nazwie LOOKUP.
Powód, dla którego nie jest on domyślnie dostępny, ponieważ WYSZUKAJ nie jest funkcją VBA, a raczej funkcją arkusza. Aby użyć funkcji WYSZUKAJ, musimy najpierw skorzystać z funkcji arkusza w klasie VBA.

- Arg 1 oznacza wartość wyszukiwania
- Arg 2 jest naszym wektorem wyszukiwania, tj. Zakresem kolumny z wartością wyszukiwania
- Arg 3 to nasz wektor wynikowy.
Jak korzystać z funkcji wyszukiwania VBA? (Przykłady)
Przykład 1
Mamy następujące dane, z których chcemy uzyskać średnią cenę określonej nazwy produktu za pomocą funkcji Lookup w VBA Excel.

Aby uzyskać średnią cenę akcesoriów mobilnych, użyj następującego kodu.
Krok 1: Uruchom podprocedurę w VBA.
Kod:
Sub Lookup_Example1 () End Sub

Krok 2: Potrzebuję wyniku w komórce F3. Więc mój kod to Range („F3”). Wartość =.
Kod:
Sub Lookup_Example1 () Range ("F3"). Wartość End Sub

Krok 3: Jak powiedziałem, nie mogliśmy od razu uzyskać dostępu do funkcji WYSZUKAJ. Więc najpierw użyj klasy Worksheet Function.

Krok 4: W momencie, gdy zastosujemy klasę Worksheet Function, możemy zobaczyć wszystkie dostępne formuły z tą klasą w VBA, więc wybierz LOOKUP z tej listy.

Krok 5: Dzięki funkcjom arkusza w VBA nie widzimy wyraźnych argumentów formuły. Tutaj Arg 1 oznacza wartość wyszukiwania. Nasza wartość wyszukiwania znajduje się w komórce E3, więc zapisz kod jako Zakres („E3”). Wartość.
Kod:
Sub Lookup_Example1 () Range („F3”). Value = WorksheetFunction.Lookup (Range („E3”). Value End Sub

Krok 6: Arg 2 to nasz wektor wyszukiwania, tj. Zakres naszej kolumny z wartością wyszukiwania. W tym przykładzie zakres wektorów wyszukiwania wynosi od B3 do B10.
Kod:
Sub Lookup_Example1 () Range („F3”). Value = WorksheetFunction.Lookup (Range („E3”). Value, Range („B3: B10”), End Sub

Krok 7: Arg 3 to nasz wektor wynikowy. Potrzebujemy wyniku z kolumny Średnia cena, więc wektor wynikowy obejmuje zakres od C3 do C10.
Kod:
Sub Lookup_Example1 () Range („F3”). Value = WorksheetFunction.Lookup (Range („E3”). Value, Range („B3: B10”), Range („C3: C10”)) End Sub

Ok, skończyliśmy z kodowaniem VBA.
Uruchommy kod i powinniśmy otrzymać wynik w komórce F3.

W ten sposób możemy użyć funkcji WYSZUKAJ w klasie funkcji arkusza, aby pobrać dane z podanej wartości wyszukiwania.
Przykład nr 2
Użyj zmiennych dla funkcji WYSZUKAJ
Używając zmiennych również możemy otrzymać wyniki. Poniżej znajduje się przykładowy kod funkcji wyszukiwania ze zmiennymi.
Kod:
Sub Lookup_Example2() Dim ResultCell As Range Dim LookupValueCell As Range Dim LookupVector As Range Dim ResultVector As Range Set ResultCell = Range("F3") Set LookupValueCell = Range("E3") Set LookupVector = Range("B3:B10") Set ResultVector = Range("C3:C10") ResultCell = WorksheetFunction.Lookup(LookupValueCell, LookupVector, ResultVector) End Sub

Even though it looks lengthy, it will give good exposure to variables in VBA. Instead of supplying all the values to the formula directly, we have declared variables and assigned set of ranges and values to them.

Declaring variables and setting the reference to those variables is always a good practice in any coding language.
Things to Remember
- LOOKUP is an alternative function to VLOOKUP.
- WYSZUKAJ niekoniecznie wymaga, aby kolumna wyników znajdowała się po prawej stronie wartości wyszukiwania.
- Długość zakresu wektora wyszukiwania i wektora wynikowego powinna być taka sama.
- Co ważniejsze, musimy podać numer indeksu kolumny, który jest niezbędny dla funkcji WYSZUKAJ.PIONOWO.