Функција FIND во VBA: Како да ја користите?

сакаат да научат како да користат Функција FIND во VBA🇧🇷 Тогаш сте на вистинското место!

Кој не ја знае опцијата SEARCH во Excel? Ако сте работеле со Excel некое време, веројатно сте ја користеле функцијата SEARCH или популарното копче за кратенка Ctrl + L за да лоцирате збор или дел од содржината што сакате да ја пребарувате во целиот работен лист. како и целата работна книга.

Исто така, во VBA имаме функција наречена FIND која може да ни помогне да ја најдеме вредноста што ја бараме.

Следете ги деталите подолу за да дознаете повеќе за оваа функција преку практични примери.

Како функционира функцијата FIND во VBA?

Функцијата Excel VBA FIND бара одредена вредност во одреден опсег. Ја бара првата појава на таа вредност и ако се најде, функцијата ја враќа ќелијата што ја содржи. Меѓутоа, ако не се најде совпаѓање, функцијата не враќа ништо. Функцијата VBA FIND може да врати точно или делумно совпаѓање.

На пример, следниот код го бара текстот "San Pablo» во интервалот A1: A10 mk «Работен лист 1🇧🇷

Со листови ("Лист 1"). Опсег ("A1:A10")
Постави Rng = .Find(What:="Сао Паоло")

Целта на користењето на функцијата FIND во VBA е да се најде саканата вредност во дадено множество податоци. Со VBA код, можете да ја автоматизирате задачата за наоѓање вредности во Excel.

VBA FIND Синтакса на функцијата

Синтаксата на функцијата VBA FIND е декларирана на следниов начин:

израз.Најди(Што, После, LookIn, LookAt, Search Order, Search Direction, MatchCase, MatchByte, SearchFormat)

Каде:

израз: е објектот опсег, кој и претходи на функцијата FIND во кодот VBA. Опсегот на пребарување може да биде еден или повеќе редови, колони или целата табела. Функцијата VBA FIND ги прифаќа следните аргументи:

  • Што: Ова е вредноста што треба да ја барате. Може да биде нумерички, текстуален или кој било друг тип на податоци на Excel. Овој аргумент е ист како опцијата Најди на „најдете и заменете“ од Excel.
  • После: Ја означува ќелијата од која ќе започне пребарувањето. Се внесува како референца од една ќелија. Ако овој аргумент е испуштен, пребарувањето започнува по ќелијата во горниот лев агол на наведениот опсег за пребарување.
  • Погледни во: Ова е локацијата (или податоците) каде што треба да се бара вредноста. Може да биде коментар (xlComments), формула (xlFormulas) или вредност (xlValues). Стандардната вредност за овој аргумент е xlFormulas. Исто така, овој аргумент е ист како опцијата Најди на „најдете и заменете“ од Excel.
  • Погледнете: Овој аргумент одлучува дали да се совпадне со целата содржина на ќелијата (точно совпаѓање) или со дел од содржината на ќелијата (делумно совпаѓање). Константите се xlWhole и xlPart за точни и делумни совпаѓања, соодветно. Стандардната вредност за овој аргумент е xlPart.
  • Редоследот на пребарување: Овој аргумент го сугерира редоследот на пребарување. Можете да одредите дали пребарувањето ќе биде во редови (xlByRows) или колони (xlByColumns). Стандардната вредност за овој аргумент е xlByRows. Исто така, овој аргумент е ист како опцијата Најди на „најдете и заменете“ од Excel.
  • Пребарај адреса: Ја означува адресата на која ќе се изврши пребарувањето. Можете да пребарувате надолу или до следната ќелија со константата xlNext. Алтернативно, можете да пребарувате наназад (нагоре) или во претходната ќелија со константата xlPrevious. Стандардната вредност за овој аргумент е xlNext.
  • Случај за натпревар: Овој аргумент одлучува дали пребарувањето треба да биде чувствително на букви или не. Ако пребарувањето е чувствително на букви, овој аргумент е наведен како точно (TRUE), во спротивно е неточно (FALSE). Стандардната вредност за овој аргумент е Неточно.
  • MatchByte: Овој аргумент треба да се користи ако некој инсталирал или избрал јазична поддршка од двоен бајт. Мора да биде наведено како точно ако знаците од двоен бајт се совпаѓаат со знаците од двоен бајт. Треба да се наведе како неточно ако знаците од два бајти треба да се совпаѓаат со нивните еквиваленти од еден бајт.
  • формат за пребарување: Означува дали вредноста за пребарување треба да биде во специфичен формат (како задебелени или закосени букви) или не. Ако вредноста за пребарување мора да следи техника за форматирање, овој аргумент е наведен како точно, во спротивно неточен. Стандардната вредност на овој аргумент е лажна (FALSE).

само аргументот што неопходно. Останатите аргументи се опционални.

Функцијата FIND враќа еден од следниве резултати:

  • Ако се најде совпаѓање, функцијата ја враќа првата ќелија каде што е пронајдена вредноста.
  • Ако не се најде совпаѓање, функцијата не враќа ништо. Ова е затоа што функционалниот објект е поставен на ништо.

Алтернативно, ако не се најде совпаѓање, наведена е прилагодена порака преку функција на полето за пораки може да се врати (види примери за кодови подолу).

Забелешка 1: Пребарувањето започнува по ќелијата наведена во аргументот. По и продолжува до последната ќелија во опсегот за пребарување. Ако вредноста не се најде до оваа последна ќелија, пребарувањето започнува повторно од првата ќелија во опсегот за пребарување до ќелијата наведена во аргументот. По🇧🇷

Затоа, ќелијата наведена во аргументот По се бара на крајот од процесот на пребарување. За повеќе детали за употребата на аргументот Повидете го вториот пример во оваа статија.

Забелешка 2: Секој пат кога се користи функцијата VBA FIND, на Погледни во🇧🇷 Гледа во🇧🇷 налог за пребарување y MatchByte се зачувани. Затоа, ако овие вредности се испуштени следниот пат кога ќе се користи функцијата, Excel ќе ги користи претходно зачуваните вредности. Затоа, се препорачува експлицитно да се декларираат дадените аргументи секогаш кога пребарувањето се врши со помош на функцијата VBA FIND.

Како да ја користите функцијата FIND во Excel VBA?

Со цел да ја разберете употребата на функцијата FIND во VBA, подолу издвоивме неколку практични примери.

Пример 1: Избирање на ќелијата со првото појавување на вредноста за пребарување

Во овој прв пример, да претпоставиме дека имате листа што содржи некои имиња како што е прикажано на сликата подолу, и сакате да ја прелистувате и изберете ќелијата што го содржи името. Педро🇧🇷

Од таму, следете ги овие чекори:

1. Пристапете до водичот Развивач 🇧🇷 визуелна основна🇧🇷 (Ако го немате овозможено табот Програмери во вашиот Excel, проверете овде чекор по чекор).

водич за развивачи

двајца На екранот VBA, изберете го саканиот работен лист од менито лево. Во овој пример, ќе го избереме Работен лист 1 кој е работниот лист кој ја содржи листата со имиња.

3. Откако ќе го изберете саканиот работен лист, во областа десно, внесете го кодот подолу:

Изберете ја ќелијата со првото појавување на бараната вредност

Под LocateName()
Опсег ("A1:A10").Најди(Што:="Петар").Избери
Под крајот
  • Забележете во кодот погоре дека го споменавме опсегот што го бараме (А1: А10🇧🇷
  • Откако ќе го спомнете опсегот, ставете точка (.) и напишете НАЈДЕ🇧🇷
  • Нашиот прв аргумент е она што го бараме. За да го истакнеме аргументот, можеме да го пренесеме аргументот што:=ова ќе биде корисно за да се идентификува на кој параметар се однесуваме.
  • Конечниот дел е откако ќе го најдеме зборот што сакаме да направиме. Треба да го избереме зборот, па да го пренесеме аргументот како .Изберете🇧🇷
  • Потоа извршете го овој код користејќи го клучот F5 или рачно како што е прикажано на сликата подолу за да ја изберете првата ќелија што го содржи името Педро🇧🇷

лоцирајте во VBA

Пример 2: Изберете ја ќелијата со втората појава на вредноста за пребарување

Во овој втор пример, забележете дека следната слика содржи некои имиња во опсегот A1:A10. Забележете дека името "Педро“ се појавува двапати во колоната А.

Изберете ја ќелијата со втората појава

Во овој случај, сакаме да пребаруваме и да го избереме втора појава на името „Петар“ во колона А (односно, ќелија А7). За да го направите ова, ќе го користиме следниов код:

НАЈДИ втора појава на VBA

Под LocateName()
Опсег ("A1:A10").Најди(Што:="Петар", After:=Range("A2")).Избери
Под крајот

Забележете во горната шифра дека пребарувањето започнува по ќелијата A2 и продолжува до последната ќелија во колоната A. Тоа е затоа што опсегот на пребарување беше наведен како колона A (A1:A10).

Значи, бидејќи пребарувањето започнува во ќелијата А3, вредноста „Педро“ е во ќелијата A7 дава"табела2🇧🇷 Затоа, ќелијата A7 ќе биде избрана од функцијата FIND при извршување на кодот.

Ако името «Педро“ не беше пронајдена во ќелијата А3 до последната ќелија во колоната А, пребарувањето повторно ќе започне во ќелијата А1 и ќе заврши во ќелијата А2 овој пат. Затоа, ќелијата наведена во аргументот „По” се бара веднаш на крајот од процесот на пребарување.

Пример 3: Најдете текст со наведување на некои од неговите знаци

За да пребарувате за текст со наведување само дел од него, внесете го аргументот Гледа во како xlДел или испушти го овој аргумент. Стандардно, функцијата FIND се совпаѓа со знаците во вредноста за пребарување со целата низа. Потоа ја враќа ќелијата што ја содржи целата оваа низа.

Погледнете го примерот подолу:

Под LocateName()
Опсег ("A1:A10"). Најдете (Што:="Ped", LookAt:=xlPart). Изберете
Под крајот

Овој код ги бара знаците "PED” во опсегот A1:A25 од „Лист 3“. Се враќа ќелијата што ја содржи вредноста, која е именувана делумна кореспонденција🇧🇷 Значи, без оглед на тоа дали знаците на вредноста за пребарување се поставени на почетокот, средината или крајот на низата, Excel VBA враќа совпаѓање.

Забелешка: константата xlДел може да се изостави од кодот бидејќи е основната вредност на функцијата FIND. Но, ако овој аргумент е наведен, погрижете се да не е затворен во двојни наводници.

Пример 4: Пронаоѓање текст во коментар

Можете исто така да ја користите функцијата VBA FIND за да пронајдете текст во коментар на ќелијата во Excel.

За подобро разбирање, погледнете го примерот подолу каде што имаме работен лист кој содржи три ќелии со коментари (означени со црвените триаголници). Од ова сакаме да го најдеме текстот „платена провизија“ се наоѓа во еден од коментарите. Во овој случај, ќе го користиме следниов код:

Под LocateComment()
Опсег ("A1:B10"). Најдете (Што:="Провизијата плаќа", LookIn:=xlКоментари). Изберете
Под крајот

Најдете текст во коментар

Како резултат на тоа, Excel ќе ја избере само ќелијата што го содржи коментарот чиј текст е наведен во нашиот код.

Пример 5: Ракување со грешки во функцијата FIND во VBA

Во случај текстот што го бараме да не е во дадениот опсег, VBA ќе врати грешка како што е прикажано подолу:

Грешка 91

За да ја избегнеме оваа грешка, можеме да користиме код како што е прикажано подолу:

Под LocateName()
Заматен резултат како варијанта

На Грешка продолжи следната
Опсег ("A1:A10").Најди(Што:="Кристина").Избери
На грешка GoTo 0

Резултат = ActiveCell.Value

Ако резултат = "" Тогаш
MsgBox "Вредноста што ја барате не е достапна во дадениот опсег!"
Излез под
Ако крајот

Под крајот

Забележете во кодот погоре дека ако VBA ја пронајде вредноста, ќе ја прикаже пронајдената вредност или во спротивно ќе ја прикаже пораката како "Вредноста што ја барате не е достапна во дадениот опсег🇧🇷

За повеќе совети за тоа како да ги поправите грешките во VBA, проверете ја статијата: Грешки во Excel VBA: сè што треба да знаете!

Детали за паметење

  • Функцијата FIND е дел од својството RANGE и треба да користите FIND откако ќе го изберете само опсегот.
  • Во функцијата FIND, првиот аргумент (што), плус сè друго е опционално.
  • Ако ја пронајдете вредноста по одредена ќелија, можете да ја споменете ќелијата во параметарот По на синтаксата за пребарување.

Преземете ја табелата овде кои ги содржат примерите претставени во ова упатство.

Проверете ги и следниве совети за Excel:

Значи, што мислите за функцијата FIND во VBA? Ако имате какви било прашања, оставете го вашиот коментар подолу. Проверете и повеќе совети за Excel и VBA на нашата веб-страница!

Томи Бенкс
Ќе бидеме среќни да слушнеме што мислите

оставете одговор

ТехноБрејк | Понуди и прегледи
логото
Овозможете регистрација во поставките - општо
Количката