VBA-да FIND функциясы: оны қалай пайдалануға болады?

Қалай пайдалану керектігін білгіңіз келеді VBA-дағы FIND функциясы🇧🇷 Онда сіз дұрыс жердесіз!

Excel бағдарламасындағы ІЗДЕУ опциясын кім білмейді? Excel бағдарламасымен біраз уақыт жұмыс істеп жатсаңыз, бүкіл жұмыс парағында іздегіңіз келетін сөзді немесе мазмұн бөлігін табу үшін ІЗДЕУ функциясын немесе танымал Ctrl + L пернелер тіркесімін пайдаланған боларсыз. бүкіл жұмыс кітабы сияқты.

Сондай-ақ, VBA-да бізде іздеген мәнді табуға көмектесетін FIND деп аталатын функция бар.

Тәжірибелік мысалдар арқылы осы мүмкіндік туралы көбірек білу үшін төмендегі мәліметтерді орындаңыз.

VBA жүйесінде FIND функциясы қалай жұмыс істейді?

Excel VBA FIND функциясы белгілі бір ауқымдағы нақты мәнді іздейді. Сол мәннің бірінші пайда болуын іздейді және табылса, функция оны қамтитын ұяшықты қайтарады. Дегенмен, сәйкестік табылмаса, функция ештеңені қайтармайды. VBA FIND функциясы дәл немесе ішінара сәйкестікті қайтара алады.

Мысалы, келесі код мәтінді іздейді "Сан Пабло» аралықта А1: А10 EN «Жұмыс парағы 1..

Sheets ("Sheet1").Dange("A1:A10")
Rng = .Find орнатыңыз(Не:="Сан-Паулу")

VBA жүйесінде FIND функциясын пайдалану мақсаты берілген деректер жинағындағы қажетті мәнді табу болып табылады. VBA коды арқылы Excel бағдарламасында мәндерді табу тапсырмасын автоматтандыруға болады.

VBA FIND функциясының синтаксисі

VBA FIND функциясының синтаксисі келесідей жарияланады:

өрнек.Табу(Не, Кейін, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

Мұнда:

өрнек: VBA кодындағы FIND функциясының алдында тұратын ауқым нысаны болып табылады. Іздеу ауқымы бір немесе бірнеше жолдар, бағандар немесе бүкіл электрондық кесте болуы мүмкін. VBA FIND функциясы келесі аргументтерді қабылдайды:

  • Не: Бұл іздеу керек мән. Ол сандық, мәтіндік немесе кез келген басқа Excel деректер түрі болуы мүмкін. Бұл аргумент «Табу» опциясымен бірдей.табу және ауыстыру” Excel бағдарламасынан.
  • Кейін: Іздеу басталатын ұяшықты көрсетеді. Ол жалғыз ұяшық сілтемесі ретінде енгізіледі. Бұл аргумент алынып тасталса, іздеу көрсетілген іздеу ауқымының жоғарғы сол жақ бұрышындағы ұяшықтан кейін басталады.
  • Көз жіберу: Бұл мәнді іздеу керек орын (немесе деректер). Бұл түсініктеме (xlComments), формула (xlFormulas) немесе мән (xlValues) болуы мүмкін. Бұл аргумент үшін әдепкі мән xlFormulas болып табылады. Сондай-ақ, бұл аргумент «Табу» опциясымен бірдей.табу және ауыстыру” Excel бағдарламасынан.
  • Қараңыз: Бұл аргумент бүкіл ұяшық мазмұнына (дәл сәйкестік) немесе ұяшық мазмұнының бір бөлігіне (жартылай сәйкестік) сәйкес келетінін шешеді. Тұрақты мәндер сәйкесінше дәл және ішінара сәйкестіктер үшін xlWhole және xlPart болып табылады. Бұл аргумент үшін әдепкі мән xlPart болып табылады.
  • Іздеу реті: Бұл аргумент іздеу ретін ұсынады. Іздеу жолдарда (xlByRows) немесе бағандарда (xlByColumns) болатынын көрсете аласыз. Бұл аргумент үшін әдепкі мән xlByRows болып табылады. Сондай-ақ, бұл аргумент «Табу» опциясымен бірдей.табу және ауыстыру” Excel бағдарламасынан.
  • Іздеу мекенжайы: Іздеу жүргізілетін мекенжайды көрсетеді. xlNext тұрақтысы арқылы төмен немесе келесі ұяшықты іздеуге болады. Балама түрде, xlPrevious тұрақты мәнімен кері (жоғары) немесе алдыңғы ұяшықта іздеуге болады. Бұл аргумент үшін әдепкі мән xlNext болып табылады.
  • Сәйкестік жағдайы: Бұл аргумент іздеудің регистрге байланысты болуы немесе болмауын шешеді. Іздеу регистрді ескеретін болса, бұл аргумент ақиқат (TRUE), әйтпесе ол жалған (FALSE) ретінде көрсетіледі. Бұл аргумент үшін әдепкі мән - False.
  • MatchByte: Бұл аргумент егер біреу қос байт тілді қолдауды орнатқан немесе таңдаған болса, қолданылуы керек. Қос байтты таңбалар қос байтты таңбаларға сәйкес келетін болса, шын деп көрсетілуі керек. Қос байтты таңбалар олардың бір байттық эквиваленттерімен сәйкестендірілсе, жалған ретінде көрсетілуі керек.
  • іздеу форматы: Ізделетін мән белгілі бір пішімде (қалың немесе курсив сияқты) болуы керек пе, жоқ па екенін көрсетеді. Егер іздеу мәні пішімдеу техникасына сәйкес болуы керек болса, бұл аргумент ақиқат, әйтпесе жалған ретінде көрсетіледі. Бұл аргументтің әдепкі мәні жалған (FALSE).

тек аргумент не бұл қажетті. Басқа аргументтер міндетті емес.

FIND функциясы келесі нәтижелердің бірін қайтарады:

  • Сәйкестік табылса, функция мән табылған бірінші ұяшықты қайтарады.
  • Сәйкестік табылмаса, функция ештеңені қайтармайды. Себебі функция нысаны ештеңеге орнатылмаған.

Немесе, сәйкестік табылмаса, пайдаланушы хабары арқылы көрсетіледі хабарлама терезесі функциясы қайтарылуы мүмкін (төмендегі код мысалдарын қараңыз).

1 ескертуі: Іздеу аргументте көрсетілген ұяшықтан кейін басталады. Кейін және іздеу ауқымындағы соңғы ұяшыққа дейін жалғасады. Егер мән осы соңғы ұяшыққа дейін табылмаса, іздеу іздеу ауқымындағы бірінші ұяшықтан аргументте көрсетілген ұяшыққа дейін қайта басталады. Кейін..

Сондықтан аргументте көрсетілген ұяшық Кейін ол іздеу процесінің соңында ізделеді. Аргументті пайдалану туралы қосымша мәліметтер алу үшін Кейіносы мақаладағы екінші мысалды қараңыз.

2 ескертуі: VBA FIND функциясы пайдаланылған сайын көз жіберу.. Мирар.. іздеу тәртібі y MatchByte Сондықтан, функция келесі рет пайдаланылғанда бұл мәндер алынып тасталса, Excel бұрын сақталған мәндерді пайдаланады. Сондықтан іздеу VBA FIND функциясы арқылы орындалған сайын берілген аргументтерді анық жариялау ұсынылады.

Excel VBA бағдарламасында FIND функциясын қалай пайдалануға болады?

VBA жүйесінде FIND функциясын пайдалануды түсіну үшін біз төменде бірнеше практикалық мысалдарды бөлдік.

1-мысал: Іздеу мәні бірінші рет кездесетін ұяшықты таңдау

Бұл бірінші мысалда төмендегі суретте көрсетілгендей кейбір атауларды қамтитын тізім бар делік және аты бар ұяшықты шолып, таңдағыңыз келеді. педро..

Сол жерден мына қадамдарды орындаңыз:

1. Нұсқаулыққа қол жеткізіңіз Әзірлеуші .. визуалды негіз🇧🇷 (Егер Excel бағдарламасында Әзірлеуші ​​қойындысы қосылмаған болса, мына жерден тексеріңіз бірте-бірте).

әзірлеушіге арналған нұсқаулық

екі. VBA экранында сол жақтағы мәзірден қажетті жұмыс парағын таңдаңыз. Бұл мысалда біз таңдаймыз Жұмыс парағы 1 бұл атаулар тізімін қамтитын жұмыс парағы.

3. Қажетті жұмыс парағын таңдағаннан кейін оң жақтағы аймаққа төмендегі кодты енгізіңіз:

Ізделетін мән бірінші рет кездесетін ұяшықты таңдаңыз

Sub LocateName()
Ауқым("A1:A10").Табу(Не:="Питер").Таңдаңыз
End Sub
  • Жоғарыдағы кодта біз іздеген ауқымды атап өткенімізге назар аударыңыз (A1: A10..
  • Ауқымды атап өткеннен кейін нүктені (.) қойып, теріңіз ТАБУ..
  • Біздің бірінші аргумент - біз іздеген нәрсе. Аргументті бөлектеу үшін біз аргументті өткізе аламыз не:=бұл қай параметрге сілтеме жасайтынымызды анықтау үшін пайдалы болады.
  • Қорытынды бөлім - біз не істегіміз келетін сөзді тапқаннан кейін. Біз сөзді таңдауымыз керек, сондықтан дәлелді келесідей беріңіз таңдаңыз..
  • Содан кейін осы кодты кілт арқылы іске қосыңыз F5 немесе аты бар бірінші ұяшықты таңдау үшін төмендегі суретте көрсетілгендей қолмен басыңыз педро..

VBA ішінде табыңыз

2-мысал: Іздеу мәнінің екінші рет қайталануы бар ұяшықты таңдаңыз

Бұл екінші мысалда келесі суретте A1:A10 ауқымында кейбір атаулар бар екенін ескеріңіз. Есіңізде болсын, атауы «педро” А бағанында екі рет көрсетіледі.

Екінші рет қайталанатын ұяшықты таңдаңыз

Бұл жағдайда біз іздеп, таңдағымыз келеді екінші көрініс А бағанындағы «Питер» атауының (яғни, A7 ұяшығы). Ол үшін келесі кодты қолданамыз:

VBA екінші ретін табу

Sub LocateName()
Ауқым("A1:A10").Табу(Не:="Питер", Кейін:=Ауқым("A2")).Таңдаңыз
End Sub

Жоғарыдағы кодта іздеудің A2 ұяшығынан кейін басталып, А бағанындағы соңғы ұяшыққа дейін жалғасатынын ескеріңіз. Себебі іздеу ауқымы А бағаны (A1:A10) ретінде көрсетілген.

Сонымен, іздеу A3 ұяшығында басталатындықтан, « мәніпедро” ұяшықта A7 береді »электрондық кесте 2🇧🇷 Сондықтан кодты орындау кезінде A7 ұяшығы FIND функциясы арқылы таңдалады.

Егер аты «педро” A3 ұяшығында А бағанындағы соңғы ұяшыққа дейін табылмаса, іздеу қайтадан A1 ұяшығынан басталып, бұл жолы A2 ұяшығында аяқталады. Сондықтан, аргументте көрсетілген ұяшық «Кейін” іздеу процесінің дәл соңында ізделеді.

3-мысал: мәтіннің кейбір таңбаларын көрсету арқылы табыңыз

Тек бір бөлігін көрсету арқылы мәтінді іздеу үшін аргумент енгізіңіз Мирар Como xlPart немесе бұл аргументті өткізіп жіберіңіз. Әдепкі бойынша, FIND функциясы іздеу мәніндегі таңбаларды бүкіл жолға сәйкес келтіреді. Содан кейін ол осы жолды қамтитын ұяшықты қайтарады.

Төмендегі мысалды қараңыз:

Sub LocateName()
Ауқым("A1:A10").Табу(What:="Ped", LookAt:=xlPart).Таңдаңыз
End Sub

Бұл код таңбаларды іздейді "Пед” “Shet1” A25:A3 ауқымында. Мәні бар ұяшық қайтарылады, ол аталды ішінара хат алмасу🇧🇷 Сонымен, іздеу мәнінің таңбалары жолдың басында, ортасында немесе соңында орналастырылғанына қарамастан, Excel VBA сәйкестікті қайтарады.

Бақылау: тұрақты xlPart оны кодтан алып тастауға болады, себебі ол FIND функциясының әдепкі мәні болып табылады. Бірақ бұл аргумент көрсетілген болса, оның қос тырнақшаға алынбағанына көз жеткізіңіз.

4-мысал: Түсініктемедегі мәтінді табу

Сондай-ақ Excel бағдарламасындағы ұяшық түсіндірмесіндегі мәтінді табу үшін VBA FIND функциясын пайдалануға болады.

Жақсырақ түсіну үшін төмендегі мысалды қараңыз, мұнда түсініктемелері бар үш ұяшықтан тұратын жұмыс парағы бар (қызыл үшбұрыштармен көрсетілген). Осыдан біз «мәтінді тапқымыз келеді.төленген комиссия” түсініктемелердің бірінде орналасқан. Бұл жағдайда біз келесі кодты қолданамыз:

Sub LocateComment()
Ауқым("A1:B10").Табу(Не:="Комиссия төлейді", LookIn:=xlComments).Таңдаңыз
End Sub

Түсініктемедегі мәтінді табыңыз

Нәтижесінде Excel мәтіні біздің кодта көрсетілген түсініктемесі бар ұяшықты ғана таңдайды.

5-мысал: VBA ішіндегі FIND функциясында қатені өңдеу

Егер біз іздеген мәтін берілген ауқымда болмаса, VBA төменде көрсетілгендей қатені қайтарады:

қате 91

Бұл қатені болдырмау үшін төменде көрсетілген кодты пайдалана аламыз:

Sub LocateName()
Нәтиже нұсқа ретінде күңгірт

Келесіде қатені жалғастыруда
Ауқым("A1:A10").Табу(Не:="Кристина").Таңдаңыз
Өту қатесі туралы 0

Нәтиже = ActiveCell.Value

Егер Нәтиже = "" Содан кейін
MsgBox "Сіз іздеген мән берілген ауқымда қолжетімді емес!"
Sub бөлімінен шығу
End If

End Sub

Жоғарыдағы кодқа назар аударыңыз, егер VBA мәнді тапса, ол табылған мәнді көрсетеді, әйтпесе ол хабарды «Сіз іздеген мән берілген ауқымда қолжетімді емес..

VBA қателерін түзету туралы қосымша кеңестер алу үшін мақаланы қараңыз: Excel VBA қателері: білуіңіз керек барлық нәрсе!

Есте сақтау керек мәліметтер

  • FIND функциясы RANGE сипатының бөлігі болып табылады және тек ауқымды таңдағаннан кейін FIND функциясын пайдалану керек.
  • FIND функциясында бірінші аргумент (не), қалғанының барлығы міндетті емес.
  • Белгілі бір ұяшықтан кейінгі мәнді тапсаңыз, параметрдегі ұяшықты атап өтуге болады Кейін іздеу синтаксисі.

Электрондық кестені осы жерден жүктеп алыңыз осы оқулықта берілген мысалдарды қамтиды.

Сондай-ақ келесі Excel кеңестерін қараңыз:

Сонымен, VBA-дағы FIND функциясы туралы не ойлайсыз? Сұрақтарыңыз болса, төменде пікіріңізді қалдырыңыз. Сондай-ақ біздің веб-сайтта Excel және VBA кеңестерін қараңыз!

Томми Бэнкс
Сіздің ойыңызды естуге қуанышты боламыз

пікір қалдыру

TechnoBreak | Ұсыныстар мен шолулар
Логотип
Параметрлерде тіркеуді қосыңыз - жалпы
Шоппинг арбашасы