Funkcja wyszukiwania Excel VBA

W programie Excel wielokrotnie korzystaliśmy z VLookup. Jest tam funkcja wstawiania, która służy do pobierania lub mapowania dowolnych żądanych wartości. Podobnie w VBA mamy aplikację Lookup, która działa tak samo jak Excel Vlookup. Wyszukiwanie VBA ma elastyczną strukturę danych, ponieważ może być używane do mapowania dowolnej wartości z dowolnego rodzaju tablicy tabel. Oznacza to, że jeśli zastosujemy program Excel Vlookup, nie będziemy w stanie zmapować danych z prawej kolumny danymi z lewej kolumny w jednej składni. Podczas gdy w VBA Lookup nie ma właściwej struktury mapowania. Musimy tylko postępować zgodnie ze składnią wyszukiwania VBA. Jeśli składnia jest spełniona i odpowiednio sformatowana, możemy pobrać wartości z prawej lub lewej strony tabeli.

Składnia funkcji wyszukiwania VBA:

Gdzie,

  • Arg1 = wartość, którą chcemy wyszukać.
  • Arg2 = Zakres kolumn lub tabeli, z której chcemy wyszukać.
  • Arg3 = Wynik jako wartość logiczna lub wektorowa.

Jak korzystać z funkcji wyszukiwania w programie Excel VBA?

Dowiemy się, jak korzystać z funkcji wyszukiwania w programie Excel przy użyciu kodu VBA.

Możesz pobrać ten szablon Excel Lookup VBA tutaj - Szablon Excel Lookup VBA

Wyszukiwanie VBA - Przykład 1

Istnieje wiele sposobów pisania kodu wyszukiwania VBA. W tym przykładzie zobaczymy prosty sposób napisania odnośnika VBA. W tym celu mamy zestaw danych, jak pokazano poniżej. Ta tabela zawiera liczbę wyścigów i średnią prędkość zawodników. Teraz będziemy wykorzystywać te dane do zastosowania wyszukiwania VBA w poniższej tabeli z niebieskimi nagłówkami w A8 do B8. W tym celu wykonaj następujące kroki:

Krok 1: Otwórz moduł z karty menu Wstaw, jak pokazano poniżej.

Krok 2: Napisz podprocedurę dla wykonanej pracy w tym module. Tutaj wybraliśmy nazwę jako VBA Lookup.

Kod:

 Sub VBA_Lookup1 () End Sub 

Krok 3: Wybierz komórkę wyjściową, w której musimy zobaczyć wartość wyszukiwania. Tutaj komórką jest B9, w której będziemy wyszukiwać z wartością dotyczącą nazwy „Aniket”, która jest naszą wartością wyszukiwania.

Kod:

 Sub VBA_Lookup1 () Zakres („B9”). Wartość Koniec Sub 

Krok 4: Teraz użyjemy funkcji arkusza roboczego i wybierz z listy wbudowaną funkcję wyszukiwania, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup1 () Zakres („B9”). Wartość = WorksheetFunction.Lookup End Sub 

Krok 5: Po wybraniu funkcji wyszukiwania zobaczymy Arg1, Arg2 i Arg3 w składni. W tym celu najpierw umieścimy zakres wartości odnośnika, którym jest komórka A9 zamiast Arg1.

Kod:

 Sub VBA_Lookup1 () Range („B9”). Value = WorksheetFunction.Lookup (Range („A9”). Value, End Sub 

Krok 6: Teraz dla Arg2 wybierz zakres wyszukiwania, który pochodzi z komórki A2: A5.

Kod:

 Sub VBA_Lookup1 () Range („B9”). Value = WorksheetFunction.Lookup (Range („A9”). Value, Range („A2: A5”), End Sub 

Krok 7: W końcu wybierz zakresy wartości wyszukiwania od B2 do B5 zamiast Arg3.

Kod:

 Sub VBA_Lookup1 () Range („B9”). Value = WorksheetFunction.Lookup (Range („A9”). Value, Range („A2: A5”), Range („B2: B5”)) End Sub 

Krok 8: Uruchom kod, naciskając klawisz F5 lub klikając przycisk Play znajdujący się pod wstążką menu. Zobaczymy, jak na Lookup, liczba wyścigów przeprowadzonych pod nazwą „Aniket” wynosi 7.

Wyszukiwanie VBA - Przykład 2

Istnieje inny sposób zastosowania funkcji wyszukiwania w programie Excel VBA. W tym celu wykorzystamy te same dane, które widzieliśmy w przykładzie 1. W tym celu wykonaj następujące kroki:

Krok 1: Napisz podprocedurę dla wyszukiwania VBA, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup2 () End Sub 

Krok 2: Zdefiniuj zmienną jako String, która będzie używana do mapowania kolumny Nazwa.

Kod:

 Sub VBA_Lookup2 () Dim Name As String End Sub 

Krok 3: W zdefiniowanej zmiennej Nazwa zastosujemy aplikację Vlookup, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup (End Sub 

Krok 4: Powiedzmy, że nasza wartość wyszukiwania nazywa się „Ashwani” z tabeli.

Kod:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup („Ashwani”, End Sub 

Krok 5: I zakres wynosi od A1 do C6 z arkusza 1.

Kod:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup („Ashwani”, Sheet1.Range („A1: C6”), End Sub 

Krok 6: Teraz, jeśli chcemy zobaczyć średnią prędkość jeźdźca „Ashwani”, musimy zmapować komórkę w składni Lookup, która jest na trzecim miejscu.

Kod:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup („Ashwani”, Sheet1.Range („A1: C6”), 3) End Sub 

Krok 7: Teraz, aby zobaczyć średnią prędkość jeźdźca „Ashwani”, możemy użyć MsgBox i Debug Print. Ale korzystanie z drukowania debugowania jest znacznie lepsze niż MsgBox. Więc przypisz druk debugowania ze zdefiniowaną nazwą zmiennej.

Kod:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup („Ashwani”, Sheet1.Range („A1: C6”), 3) Debug.Print Name End Sub 

Krok 8: Teraz otwórz Natychmiastowe okno, które jest w zakładce menu Widok, aby zobaczyć wynik.

Krok 9: Skompiluj kod i uruchom go. Zobaczymy, Lookup zmapował z prędkością Ashwani i umieścił to w oknie Natychmiastowym jako 86 .

Kod:

 Sub VBA_Lookup2 () Dim Name As String Name = Application.VLookup („Ashwani”, Sheet1.Range („A1: C6”), 3) Debug.Print Name End Sub 

Wyszukiwanie VBA - Przykład 3

Aby użyć funkcji wyszukiwania w programie Excel VBA, wykonaj następujące kroki:

Krok 1: Napisz podprocedurę dla wyszukiwania VBA, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup3 () End Sub 

Krok 2: Zadeklaruj zmienną Nazwa jako Ciąg, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup3 () Dim Name As String End Sub 

Krok 3: Teraz przypisz nazwę, która chce wyszukać do zdefiniowanej nazwy zmiennej, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup3 () Dim Name As String Name = „Deepinder” End Sub 

Krok 4: Teraz użyj dowolnego słowa, aby zdefiniować i użyj Lookup, powiedzmy LUp . I w tym użyj funkcji arkusza roboczego z Vlookup, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (MsgBox "Średnia prędkość to:" & LUp End Sub 

Krok 5: Teraz użyj tej samej składni Vlookup, jakiej używamy w Excelu. W Arg1 wstaw zmienną Nazwa, następnie wybierz macierz zakresu i poszukaj wartości, którą chcemy uzyskać. Tutaj kolumna ma wartość 3, jak pokazano poniżej.

Kod:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Średnia prędkość to:" & LUp End Sub Sub 

Krok 6: Teraz użyj MsgBox, aby zobaczyć wynik.

Kod:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Średnia prędkość to:" & LUp End Sub Sub 

Krok 7: Skompiluj i uruchom kod. Zobaczymy, dla nazwy „Deepinder” średnia prędkość zbliża się do 88. Natomiast ta sama wartość jest podana dla nazwy Deepinder w tabeli.

Kod:

 Sub VBA_Lookup3 () Dim Name As String Name = "Deepinder" LUp = Application.WorksheetFunction.VLookup (Name, Sheet1.Range ("A2: C6"), 3, False) MsgBox "Średnia prędkość to:" & LUp End Sub Sub 

Plusy funkcji wyszukiwania Excel VBA

  • Jest równie łatwy w użyciu i implementacji, jak stosowanie regularnych formuł programu Vlookup w programie Excel w programie Excel.
  • Możemy użyć dowolnego rodzaju zakresu i macierzy w VBA Lookup.
  • Podczas stosowania wyszukiwania VBA istnieje bardzo niewiele ograniczeń lub ich brak.

Rzeczy do zapamiętania

  • Możemy użyć Lookup zamiast Vlookup w każdej sytuacji.
  • Zakres wektora wyszukiwania i wektora wyniku powinien być taki sam.
  • Po zakończeniu aplikacji zapisz plik w formacie Macro Enable, aby zachować kod.
  • Nie ma obowiązkowego wymogu umieszczania kolumny wyników za każdym razem, aby znajdowała się po prawej stronie wartości wyszukiwania.

Polecane artykuły

Jest to przewodnik po funkcji wyszukiwania VBA. Tutaj omawiamy, jak korzystać z funkcji wyszukiwania w Excel VBA wraz z praktycznymi przykładami i szablonem Excel do pobrania. Możesz także przejrzeć nasze inne sugerowane artykuły -

  1. Kolekcja VBA (przykłady)
  2. Instrukcje VBA IF | Szablony programu Excel
  3. Jak korzystać z funkcji sortowania Excel VBA?
  4. VBA While Loop (przykłady z szablonem Excel)
  5. VBA Environ

Kategoria: