Съдържание
Една от най-важните и широко използвани функции, които използваме в Приложение на Visual Basic (VBA) е функцията Find. В тази статия ще ви покажа как можете да използвате функцията Функция FIND на Excel с подходящи примери и илюстрации.
Изтегляне на работна тетрадка за практика
Намиране на функция във VBA в Excel.xlsm6 бързи примера за използване на функцията FIND във VBA
Тук имаме набор от данни с Имена на книги, автори и Цени на някои книги от книжарница, наречена Martin Bookstore.
Днес целта ни е да видим различни видове използване на Намиране на функция на VBA от този набор от данни.
1. Използване на функцията Find във VBA без параметър
Можете да използвате Намиране на функция на VBA без параметри.
След това се търси определена стойност в диапазон от клетки и се връща първото намерено съвпадение.
Нека потърсим името "П. Б. Шели" в колоната Автор ( C4:C13 ).
Линията с Намиране на функция ще бъде:
Set cell = Range("C4:C17").Find("P. B. Shelly")
Пълният Код VBA ще бъде:
⧭ Код VBA:
Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub
⧭ Изход:
Той произвежда Macro наречен Намерете Ако стартирате макроса, той ще върне $C$6 , първият адрес на клетката с името П. Б. Шели .
Прочетете повече: Намиране в диапазон с VBA в Excel: Включване на точни и частични съвпадения
2. прилагане на функцията Find във VBA с параметъра After (за започване на търсене от определена клетка)
Можете да използвате След параметър с Намиране на функция в VBA След това ще започне да търси стойност от долната част на дадена клетка в рамките на даден диапазон.
Например, нека започнем да търсим името "П. Б. Шели" от долната клетка C6 .
Редът от кода ще бъде:
Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))
И пълният Код VBA ще бъде:
⧭ Код VBA:
Sub Find() Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6")) MsgBox cell.Address End Sub
⧭ Изход:
Той ще върне $C$13 тъй като започва да търси от долната клетка C6 , това е от клетка C7 . Така се получава П. Б. Шели в клетка C13 първо.
Прочетете повече: Как да намерите низ в клетка с помощта на VBA в Excel
3. Изпълнете функцията Find във VBA с обгръщане на параметъра After (за кръгово търсене на стойност)
Сайтът След параметър с Намиране на функция търси стойност по кръгов път
Това означава, че тя започва да търси от долната част на клетка в рамките на диапазон, завършва търсенето в диапазона и след това отново започва от горната част на диапазона.
Например, нека започнем да търсим името "Джон Кийтс" от долната клетка C8 като използвате След параметър.
Редът от кода ще бъде:
Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))
И пълният Код VBA ще бъде:
⧭ Код VBA:
Sub Find() Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8")) MsgBox cell.Address End Sub
⧭ Изход:
Той ще върне $C$7 тъй като започва да търси от долната клетка C8 , това е от клетка C9 .
Той не намира нищо до клетка C13 , така че отново започва от клетката C4 и намира такава в клетката C7 .
Подобни четива:
- Как да намерите низ с VBA в Excel (8 примера)
- Намиране на точно съвпадение чрез VBA в Excel (5 начина)
- Как да намирате и заменяте чрез VBA (11 начина)
4. използване на функцията Find във VBA с параметъра LookAt (за точно или частично съвпадение)
Можете да използвате Намиране на функция в VBA с Вижте параметър.
Използвайте LookAt = xlWhole за Точно съвпадение и LookAt=xlPart за Частично мач.
Например, нека се опитаме да разберем дали има книга с името "Ода" в Име на книгата колона ( B4:B13 ).
Ако използваме xlЦялата в реда от кода:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)
Изходът ще покаже грешка, защото няма да намери никаква точно мач.
Но ако използвате:
Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)
След това ще се върне $B$9 , защото има книга с името "Ода" в нея в клетката B7 , "Ода за славея".
Така че пълният код за частичен мач е:
⧭ Код VBA:
Sub Find() Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart) MsgBox cell.Address End Sub
5. Работа с функцията Find във VBA с параметъра SearchDirection (за определяне на посоката на търсене)
Можете също така да използвате Намиране на функция в VBA с SearchDirection параметър.
Използвайте SearchDirection = xlNext за търсене от Отгоре до долу .
И SearchDirection = xlPrevious за търсене от Отдолу нагоре .
Например, нека се опитаме да намерим автора Елиф Шафак в колоната Автор ( C4:C13 ).
Ако използваме xlСледващото в реда от кода:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)
След това ще върне $C$5 .
Но ако използвате:
Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)
След това ще се върне $C$11 .
Така че пълният код за търсене от отдолу нагоре е:
⧭ Код VBA:
Sub Find() Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious) MsgBox cell.Address End Sub
6. Функция Find във VBA с параметър MatchCase (за съвпадение, чувствително или нечувствително към големи и малки букви)
Накрая можете да използвате Намиране на функция с MatchCase параметър.
Използвайте MatchCase = True за отчитане на малки и големи букви мач , и MatchCase=False за без значение на размера на буквите мач.
Например, нека се опитаме да намерим книгата "майка" в Име на книгата колона ( B4:B13 ).
Ако използваме True в реда на кода:
Set cell = Range("B4:B13").Find("mother", MatchCase:=True)
Изходът ще покаже грешка, тъй като няма да намери съвпадение.
Но ако използвате:
Set cell = Range("B4:B13").Find("mother", MatchCase:=False)
След това ще се върне $B$9 защото има книга на име "Майка" в клетка B8 .
Така че пълният код за без значение на размера на буквите мач е:
⧭ Код VBA:
Sub Find() Set cell = Range("B4:B13").Find("Mother", MatchCase:=False) MsgBox cell.Address End Sub
Заключение
Използвайки тези методи, можете да използвате функцията Find в приложение на Visual Basic. Имате ли някакви въпроси? Не се колебайте да ни попитате.