Spis treści
W programie MS Excel często musimy wyszukiwać lub znajdować wartości w zbiorze danych. Może to być wyszukiwanie danych w wierszach lub kolumnach. Na szczęście Excel udostępnia różne funkcje i formuły do wykonywania tego typu zadań. Z pomocą kodu VBA programu Excel możemy zautomatyzować to zadanie wyszukiwania lub znajdowania wartości. W tym artykule zobaczymy różne sposoby na znaleźć wartość w kolumnie w Excelu VBA.
Pobierz Zeszyt ćwiczeń
Znajdź wartość w kolumnie.xlsm6 Przykłady VBA, aby znaleźć wartość w kolumnie w Excelu
Miejmy zbiór danych informacji o produktach z ich ID produktu , Marka , Model , Cena jednostkowa oraz Identyfikator zamówienia . Nasze zadanie polega na znalezieniu dopasowanego Identyfikator zamówienia Teraz naszym zadaniem jest znalezienie Identyfikator zamówienia związany z ID produktu .
1. Znajdź wartość w kolumnie używając funkcji Znajdź w VBA
W pierwszym przykładzie użyjemy Funkcja Znajdź w VBA aby znaleźć wartość w kolumnie.
📌 Kroki:
- Przejdź do nazwy arkusza na dole.
- Naciśnij prawy przycisk myszy.
- Wybierz Wyświetl kod opcja z listy.
- Otworzy się okno VBA, w którym należy wybrać Moduł od Wkładka opcja
- Teraz w konsoli VBA napisz następujący kod
Sub Find_Value() Dim ProductID As Range Range("D4").ClearContents Set ProductID = Range("B8:B19").Find(What:=Range("C4").Value, _ LookIn:=xlValues, LookAt:=xlWhole) If Not ProductID Is Nothing Then Range("E5").Value = ProductID.Offset(, 4).Value Else MsgBox "No Matched Data Found !!!" End If End Sub.
- Teraz wstaw przycisk w zbiorze danych.
- Idź do Deweloper tab.
- Wybierz Przycisk ( Kontrola formularzy ) od. Wkładka sekcja.
- Podaj dowolną nazwę przycisku, np. ja podaję ją jako Szukaj .
- Przypisz kod do tego przycisku.
- Wybierz przycisk i naciśnij prawy przycisk myszy.
- Wybierz Przypisz Makro z listy.
- Wybierz żądane makro z listy Przypisz Makro okno.
- Następnie naciśnij OK .
- Teraz napisz dowolny ID produktu i kliknąć na Szukaj przycisk.
Możemy zobaczyć No match is showing, ponieważ ten numer produktu nie znajduje się na liście.
- Postawić kolejny ID produktu i ponownie naciśnij przycisk Szukaj przycisk.
Otrzymujemy numer zamówienia dla danego ID produktu .
Read More: Jak uzyskać wartość komórki według wiersza i kolumny w Excelu VBA
2. VBA do znalezienia wartości z różnych arkuszy
Teraz w tej części zrobimy to samo co powyżej, ale dla różnych arkuszy. Załóżmy, że nasze informacje o produkcie znajdują się w Arkusz 2 , a pole wyszukiwania znajduje się w Arkusz 3 Teraz napiszemy kod VBA, abyśmy mogli wyszukać ID zamówienia przy użyciu ID produktu z Arkusz 3 .
Plansza 2:
Arkusz3:
📌 Kroki:
- Wykonaj te same kroki, co w przypadku krok 1 do krok 2 z poprzedniej metody, aby otworzyć konsolę VBA
- Teraz w konsoli VBA napisz następujący kod
Sub Find_Value_from_worksheets() Dim rng As Range Dim ProductID As String Dim rownumber As Long ProductID = Sheet3.Cells(4, 3) Set rng = Sheet2.Columns("B:B").Find(What:=ProductID, _ LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, _ SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) rownumber = rng.Row Sheet3.Cells(5, 5).Value = Sheet2.Cells(rownumber, 6).Value End Sub
- Teraz ponownie wstaw przycisk jak w poprzednim przypadku.
- Następnie przypisz kod makra do przycisku.
- Wpisz dowolny ID produktu i kliknąć na Wykonaj przycisk
Read More: Wyszukaj wartość w kolumnie i zwróć wartość innej kolumny w Excelu
3. znajdź i zaznacz wartość w kolumnie
Zobaczmy, jak możemy znaleźć wartości z kolumny poprzez ich zaznaczenie. W tym celu załóżmy ten sam zestaw danych powyżej z dodatkową kolumną o nazwie Status dostawy Teraz naszym zadaniem jest zaznaczenie wartości w Status dostawy kolumna, które są W oczekiwaniu na .
📌 Kroki:
- Wykonaj ten sam krok od krok 1 do krok 2 jak poprzednia metoda, aby otworzyć konsolę VBA
- Teraz w konsoli VBA napisz następujący kod
Sub Find_and_Mark() Dim strAddress_First As String Dim rngFind_Value As Range Dim rngSrch As Range Dim rng_Find As Range Set rng_Find = ActiveSheet.Range("G1:G16") Set rngSrch = rng_Find.Cells(rng_Find.Cells.Count) Set rngFind_Value = rng_Find.Find("Pending", rngSrch, xlValues) If Not rngFind_Value Is Nothing Then strAddress_First = rngFind_Value.Address rngFind_Value.Font.Color = vbRed Do SetrngFind_Value = rng_Find.FindNext(rngFind_Value) rngFind_Value.Font.Color = vbRed Loop Until rngFind_Value.Address = strAddress_First End If End Sub
- Teraz przejdź do arkusza i uruchom kod.
- Zobacz dane wyjściowe w tabeli.
Read More: Jak znaleźć najwyższą wartość w kolumnie Excela (4 metody)
4. VBA do wyszukiwania wartości w kolumnie przy użyciu znaków wieloznacznych
Na koniec zobaczymy, jak możemy wyszukiwać lub znajdować wartości w kolumnach za pomocą znaków wieloznacznych w Excelu VBA. Ponownie użyjemy tego samego zbioru danych, co powyżej. Naszym zadaniem jest znalezienie cen produktów za pomocą ich modelu. Moglibyśmy wpisać pełną nazwę lub ostatnie/pierwsze znaki ID produktu .
📌 Kroki:
- Wykonaj ten sam krok od krok 1 do krok 2 jak poprzednia metoda, aby otworzyć konsolę VBA
- Teraz w konsoli VBA napisz następujący kod
Sub Find_Using_Wildcards() Set myerange = Range("B5:G16") Set ID = Range("D19") Set Price = Range("F20") Price.Value = Application.WorksheetFunction.VLookup _ ("*" & Range("D19") & "*", myerange, 4, False) End Sub.
- Ponownie wstawiamy przycisk jak w poprzednim przypadku.
- Teraz przypisz kod makra do przycisku.
- Teraz wprowadź dowolny częściowy ID produktu i nacisnąć przycisk Wykonaj przycisk.
Read More: Jak znaleźć najniższą wartość w kolumnie Excela (6 sposobów)
5. Excel VBA, aby znaleźć maksymalną wartość w kolumnie
Tutaj chcemy znaleźć maksymalną wartość kolumny za pomocą kodu VBA.
📌 Kroki:
- Chcemy poznać cenę maksymalną.
- Teraz umieść następujący kod VBA na nowym module.
Sub Kolumna_Max() Dim zakres_1 As Zakres Set zakres_1 = Application.InputBox(prompt:="Select Range", Type:=8) Max_kolumna = WorksheetFunction.Max(zakres_1) MsgBox Max_kolumna End Sub.
- Następnie naciśnij przycisk F5 aby uruchomić kod VBA.
- Na stronie Wejście Pojawia się okno dialogowe.
- Wybierz zakres ze zbioru danych.
- Na koniec naciśnij przycisk OK przycisk.
Widzimy, że maksymalna wartość jest pokazana w oknie dialogowym.
6. Excel VBA, aby znaleźć ostatnią wartość w kolumnie
Tutaj chcemy poznać wartość ostatniego wiersza lub komórki określonej kolumny. Na przykład, chcemy poznać ostatni produkt z kolumny Produkt
📌 Kroki:
- Wprowadź VBA poniższy kod na module.
Sub ostatnia_wartość() Dim L_Row As Long L_Row = Cells(Rows.Count, "B").End(xlUp).Row MsgBox Cells(L_Row, 2).Value End Sub
- Następnie uruchom kod, naciskając przycisk F5 przycisk.
Ostatnia wartość jest wyświetlana w oknie dialogowym.
Read More: Jak znaleźć ostatnie wystąpienie wartości w kolumnie w programie Excel (5 metod)
Rzeczy do zapamiętania
Niektóre częste błędy:
- Błąd: One Value at a Time. Ponieważ ZNAJDŹ Metoda może znaleźć tylko jedną wartość w tym samym czasie.
- Błąd: #NA w VLOOKUP Jeżeli poszukiwana wartość nie występuje w podanym zbiorze danych, to funkcja zwróci to #NA błąd.
- Range("Cell_Number").ClearContents część jest używana do wyczyszczenia poprzedniej wartości z komórki. W przeciwnym razie poprzednia wartość musi być usunięta ręcznie.
Wniosek
Są to niektóre sposoby na znalezienie wartości w kolumnach przy użyciu kodu VBA w Excelu. Pokazałem wszystkie metody z ich odpowiednimi przykładami, ale może być wiele innych iteracji. Omówiłem również podstawy używanych funkcji. Jeśli masz jakąś inną metodę osiągnięcia tego celu, to zapraszam do podzielenia się nią z nami. Odwiedź naszą stronę internetową ExcelWIKI po więcej ciekawych artykułów na temat Excela.