VBA ZNAJDŹ

Excel VBA Znajdź

Kiedy używamy Znajdź w normalnym arkuszu roboczym, wciskamy skrót klawiszowy CTRL + F i wpisujemy dane, które musimy znaleźć, a jeśli nie jest to pożądana wartość, przechodzimy do następnego dopasowania, jeśli jest dużo takich dopasowań, jest to żmudne zadanie, ale kiedy używamy ZNAJDŹ w VBA, wykonuje zadania za nas i podaje nam dokładne dopasowanie. Potrzeba trzech argumentów, jeden to, co znaleźć, gdzie znaleźć i gdzie spojrzeć.

Zanim przejdziemy do VBA i zaczniemy używać funkcji wyszukiwania w makrach, musimy najpierw dowiedzieć się, czym jest funkcja wyszukiwania w programie Excel. W normalnym programie Excel na karcie Strona główna pod grupą edycji możemy znaleźć funkcję wyszukiwania, która służy do znalezienia ciągu lub wartości w zakresie komórek lub całym arkuszu.

Kiedy to klikniemy, otrzymamy dwie opcje;

Jedno jest łatwe do znalezienia,

Widzimy, że ma również tryb opcji, który otwiera kolejną funkcję.

Wykonuje algorytm znajdowania z czterema ograniczeniami: Znajdź co, w środku, Wyszukaj i zajrzyj.

Drugą opcją w programie Excel jest Znajdź i zamień, który jest używany, gdy znajdujemy ciąg, ale co zastąpić go dowolną inną wartością,

Znajdź składnię funkcji

Dowiedzieliśmy się powyżej, co znajduje się w podstawowym programie Excel. W VBA piszemy kody ręcznie, ale funkcje są takie same jak w zwykłym programie Excel. Najpierw przyjrzyjmy się składni.

Expression.Find (What, lookin,….)

Jeśli szukana wartość zostanie znaleziona za pomocą funkcji programu Excel, zwraca komórkę, w której znajduje się wartość, a jeśli wartość nie zostanie znaleziona, obiekt funkcji jest ustawiony na nic.

Wyrażenia w makrach to zakresy zdefiniowane, takie jak zakres 1 lub zakres 2. Jakie jest słowo kluczowe określające to, czego szukamy dla określonej wartości? Lookin to słowo kluczowe określające to, co próbujemy wyszukać, czy jest to komentarz, formuła czy ciąg. Podobnie istnieją inne ograniczenia w funkcji Find, które są opcjonalne. Jedynym wymaganym polem obowiązkowym jest wartość, którą próbujemy wyszukać.

Zasadniczo VBA stwierdza, że ​​Excel ma jeden wymagany argument, którym jest wartość, którą chcemy wyszukać. Pozostałe ograniczenia są opcjonalne, a funkcja find ma wiele ograniczeń. Funkcja wyszukiwania jest podobna do funkcji znajdowania w programie Excel.

Parametrem funkcji wyszukiwania jest zakres komórek. Na przykład w jakim zakresie chcemy znaleźć wartość. Może to być kilka kolumn, kilka komórek lub cały arkusz.

Przykłady

Możesz pobrać ten szablon Excel funkcji VBA FIND tutaj - szablon Excel funkcji VBA FIND

Przykład 1

Załóżmy, że nasze dane mają następujące wartości

Postaramy się znaleźć „Aran” w tych samych danych.

  • Aby napisać kod VBA, konieczne jest włączenie karty programisty w programie Excel, aby móc pisać kody VBA.

  • Zaczynamy pisać nasz kod, pisząc następujący kod, jak pokazano poniżej,
Podpróbka ()

Przyciemnij znaleziska jako ciąg

Dim Rng As Range

FindS = InputBox („Wpisz wartość, którą chcesz wyszukać”)

Z arkuszami („Arkusz1”). Zakres („A: A”)

  • Przykładem jest nazwa funkcji nadana subowi.
  • Find to ciąg znaków, który ma wyszukiwać użytkownik, którego chcemy wprowadzić.
  • Rng to zmienna, którą wzięliśmy dla zakresu.
  • Teraz prosimy użytkownika o wpisanie wartości, która wygląda jak na poniższym zrzucie ekranu,

  • Teraz zdefiniujemy naszą funkcję find w module.

  • Funkcja wyszukuje wartość wprowadzoną przez użytkownika w podanym zakresie.
  • Teraz zamykamy funkcję następującymi argumentami.

  • Jeśli teraz uruchomimy nasz kod, zapyta on użytkownika o podanie wartości.

  • Po zakończeniu kodu zwraca komórkę, w której znaleziono dane.

Przykład nr 2

W powyższym przykładzie były cztery unikalne nazwy, ale co by było, gdyby w danych było więcej niż jedna nazwa, na przykład weź pod uwagę poniższe dane,

Widzimy, że imię Aran jest powtórzone dwukrotnie w powyższych danych. Jeśli program Excel musi znaleźć nazwę Aran, znajdzie ją w komórce A2 i zatrzyma się, ale istnieje inna wartość podobna do wartości A2 w komórce A6. Jak pobrać tę wartość? W pomocy pojawia się składnia funkcji Znajdź (co, po).

Po definiuje komórkę, po której odwołaniu chcemy przeszukać dane.

Napiszmy kod dla powyższych danych.

  • Zawsze pamiętaj, aby włączyć kartę programisty w opcjach, a następnie z dostosowywania wstążki w programie Excel, aby móc pisać kod w języku VBA.
  • W VBA otrzymujemy obiekty Microsoft excel, czyli moduł, w którym piszemy kody.

  • Wcześniej pracowaliśmy na arkuszu 1, teraz pracujemy na arkuszu 2, więc wybierz arkusz 2 dla innego modułu i pojawi się pusta strona.

  • Teraz zacznij pisać kod, definiując najpierw funkcję jako SUB Sample2 () i naciśnij enter.

  • Teraz, kiedy zdefiniowaliśmy naszą funkcję, przejdziemy do głównej części, czyli definiowania naszych zmiennych.

  • Zdefiniuj, co powinna mieć zmienna Find,

  • Wybierz arkusze, nad którymi pracujemy, czyli arkusz 2 w tym przykładzie,

  • Teraz znajdziemy tekst, który użytkownik wprowadzi po komórce A2, więc definiujemy naszą funkcję wyszukiwania jak poniżej,

  • Teraz zamykamy kod, kończąc warunki zi if.

Powyższy kod wyszukuje ciąg po komórce A2 i zwraca komórkę, gdziekolwiek zostanie znaleziona.

Rzeczy do zapamiętania

  1. Najpierw musimy włączyć kartę programisty, aby móc korzystać z VBA.
  2. Jaka jest konkretna wartość, którą musimy znaleźć?
  3. Jeśli wartość nie zostanie znaleziona, obiekt funkcji jest ustawiany na nic.