Змест
Укараненне VBA з'яўляецца найбольш эфектыўным, хуткім і бяспечным метадам выканання любой аперацыі ў Excel. У гэтым артыкуле мы пакажам вам, як знайсці пэўныя радкі ў іншым зададзеным радку з дапамогай VBA у Excel.
Спампаваць практычны шаблон
Вы можна загрузіць бясплатны шаблон для практыкі Excel адсюль.
VBA для пошуку ў String.xlsm
Функцыя InStr
Microsoft Excel мае ўбудаваную функцыю пад назвай функцыя InStr для пошуку пазіцыі пэўных радкоў у дадзеным радку.
Агульны сінтаксіс:
InStr([start], string1, string2, [compare])
Тут,
Аргументы | Абавязковыя/ Неабавязковыя | Азначэнне |
---|---|---|
пачатак | Неабавязкова | Пачатковая пазіцыя пошуку.
|
string1 | Абавязкова | Радок для пошуку, першасны радок. |
радок2 | Абавязковы | Радок для пошуку ў асноўным радку . |
параўнаць | Дадаткова | Функцыя InStr па змаўчанні адчувальная да рэгістра. Але калі вы жадаеце запусціць InStr без уліку рэгістра, то вы можаце перадаць сюды аргумент для выканання пэўнага параўнання. Гэты аргумент можа быць наступнымзначэнні,
Па змаўчанні InStr прымае vbBinaryCompare у якасці аргумента параўнання. |
8 простых прыкладаў пошуку канкрэтнай пазіцыі радка ў зададзеным радку з дапамогай VBA
Давайце паглядзім некалькі простых прыкладаў, каб атрымаць пазіцыі пэўных радкоў у зададзеным радку з дапамогай VBA .
1. VBA для пошуку пазіцыі тэксту ў радку
Ніжэй прыведзены прыклад InStr для пошуку становішча тэксту ў радку.
- Націсніце Alt + F11 на клавіятуры або перайдзіце на ўкладку Распрацоўшчык -> Visual Basic , каб адкрыць Рэдактар Visual Basic .
- Ва ўсплывальным акне кода з радка меню , націсніце Уставіць -> Модуль .
- Цяпер у акне кода напішыце простую праграму InStr у VBA Sub Працэдура (гл. ніжэй).
1833
Цяпер ваш код гатовы да выканання.
- Націсніце F5 на клавіятуры або ў радку меню абярыце Выканаць -> Запусціце Sub/UserForm . Вы таксама можаце проста націснуць на маленькі значок Play у радку падменю, каб запусціць макрас.
Вы ўбачыце, што ўсплывальнае акно паведамлення дасць вам нумарабвяшчаючы пазіцыю тэксту, які вы хочаце праверыць.
Тлумачэнне:
Наш асноўны радок, “ Happiness is a choice ” - гэта сказ з 21 літары (з прабеламі), і мы хацелі знайсці пазіцыю тэксту “ choice ” у гэтым радку. Тэкст “ выбар ” пачынаўся з 16-й пазіцыі асноўнага радка, такім чынам, мы атрымалі нумар 16 у якасці вываду ў полі паведамлення.
2. VBA для пошуку тэксту з пэўнай пазіцыі ў радку
Цяпер давайце даведаемся, што адбылося б, калі б мы захацелі атрымаць пазіцыю з пэўнай лічбы.
- Гэтак жа, як раней адкрыйце Рэдактар Visual Basic з укладкі Распрацоўшчык і Устаўце Модуль у акно кода.
- У у акне кода, напішыце простую праграму InStr , паказаную вышэй, і перадайце значэнне ў пачатковы аргумент у адпаведнасці з пазіцыяй, з якой вы хочаце адлічваць тэкст.
9293
- Далей запусціце код.
Вы ўбачыце, што ўсплывальнае акно паведамлення даць вам лічбу, якая дэкларуе пазіцыю тэксту пачынаючы з пэўнай пазіцыі , якую вы хочаце праверыць.
Тлумачэнне:
Як мы ўжо ведалі (з абмеркавання фазы 1), што тэкст « выбар » пачынаецца з пазіцыі 16 , таму мы ўставілі два « выбар ” у першасным радку і ўсталюйце 17 у якасці нашага1-ы параметр для пропуску першага “ выбар ”. Такім чынам, мы запусцілі прыведзены вышэй макрас, і ён паказаў нам нумар пазіцыі 27 , які дакладна адпавядае нумару пазіцыі другога « выбару » у дадзеным радку.
3. VBA для пошуку тэксту з дапамогай функцыі InStr без уліку рэгістра ў радку
З увядзення функцыі InStr вы ўжо ведаеце, што па змаўчанні функцыя InStr адчувальны да рэгістра. Давайце высвятлім гэта на прыкладзе.
Глядзіце наступны код VBA , дзе мы хацелі знайсці пазіцыю слова “ Выбар » з вялікай літары «C» у радку « Шчасце - гэта выбар », дзе выбар пішацца праз малую літару «c» .
- Запусціце код і знайдзіце 0 як вынік.
Гэта таму, што функцыя InStr па-рознаму разглядае вялікую “C” і малую “c” . Такім чынам, ён шукаў слова “ Выбар ” у радку і не знайшоў супадзенняў, таму вярнуў 0 .
- Каб зрабіць функцыю InStr неадчувальнай да рэгістра , усталюйце аргумент параўнання ў vbTextCompare (гл. ніжэй).
5854
- Запусціце код.
Вы атрымаеце пазіцыю тэксту з радка, незалежна ад таго, напісаны тэкст вялікімі ці малымі літарамі .
4. VBA для пошуку тэксту справа ад радка
Дагэтуль функцыя InStr давала нам толькі пазіцыю з левага боку радка. Але што, калі вы хочаце знайсці пазіцыю тэксту з правага боку радка.
Функцыя InStrRev шукае справа. Функцыя InStrRev працуе вельмі падобна на функцыю InStr , і яна знойдзе пазіцыю тэксту з правага боку радка.
Глядзіце наступныя прыклады, каб зразумець розніцу.
- Калі мы запусцім наступны код з функцыяй InStr ,
гэта дае нам пазіцыю ( 16 ) першага тэксту « выбар ».
- Але калі мы запусцім той самы код з функцыяй InStrRev ,
гэта дасць нам пазіцыю ( 27 ) апошняга тэксту “ выбар ”.
Падобныя чытанні:
- FindNext з дапамогай VBA ў Excel (2 прыклады)
- Як знайсці і замяніць з дапамогай VBA (11 спосабаў)
- Знайдзіце дакладнае супадзенне з дапамогай VBA ў Excel (5 спосабаў)
5. VBA для пошуку пазіцыі сімвала ў радку
Вы таксама можаце знайсці пазіцыю пэўнага сімвала ў радку такім жа спосабам, якім вы знайшлі тэкст.
- Скапіруйце наступны код у ваша акно кода VBA
1733
- І запусціце макрас.
Першы “ e ” у дадзеным радку знаходзіцца ўпазіцыя лічбы 7 .
6. VBA для пошуку падрадка ў радку
Тут мы даведаемся, як вызначыць, утрымлівае радок падрадок ці не.
Каб атрымаць гэта, мы маем каб запусціць Калі інструкцыю ў нашым кодзе.
- Такім жа чынам, як і раней, адкрыйце Рэдактар Visual Basic з укладкі Распрацоўшчык і Устаўце Модуль у акно кода.
- У акне кода скапіруйце наступны код і ўстаўце яго.
4124
Ваш зараз код гатовы да запуску.
- Запусціце макрас.
Калі ваш радок змяшчае падрадок , вы атрымаеце супадзенне знойдзена , у адваротным выпадку ён верне не знойдзены супадзенне. У нашым прыкладзе мы хацелі высветліць, ці змяшчае наш асноўны радок « Шчасце - гэта выбар » слова « выбар » або не. Як гэта адбываецца, мы атрымліваем вынік Знойдзены супадзенне .
7. VBA для пошуку радка ў дыяпазоне вочак
Вы можаце шукаць пэўны тэкст у дыяпазоне вочак радка і вяртаць пэўны радок.
Паглядзіце на наступны прыклад, дзе мы будзем знайдзіце « Доктар », і калі будзе супадзенне, вернецца « Доктар ».
- Ніжэй прыведзены код для атрымання вышэйзгаданага выніку,
8016
- Запусціце код і вынік паказаны ніжэй
- Вы можаце змяніць макрас у адпаведнасці з вашымі патрэбамі. Напрыклад, калі хочацекаб знайсці « Прафесар » у любой ячэйцы радка і атрымаць « Прафесар » у якасці вяртання, затым проста перадаць « Prof. ” у якасці значэння замест “ Dr .” у 4-м радку макраса і « Прафесар » замест « Доктар » у 5-м радку макраса і вызначце нумар дыяпазону вочак адпаведна.
8. VBA для пошуку радка ў ячэйцы
Вы таксама можаце шукаць пэўны тэкст у адной ячэйцы радка і вярнуць пэўны радок.
- Скапіруйце наступны код і ўстаўце яго ў акно кода.
7775
Будзе выкананы пошук “ Dr. ” у ячэйцы B5 і, калі знаходзіць супадзенне, вяртае “ Доктар ” у ячэйцы C5 .
- Вы можаце змяніць макрас у адпаведнасці з вашымі патрэбамі. Напрыклад, калі вы хочаце знайсці « Прафесар » у любой ячэйцы радка і атрымаць « Прафесар » як вынік, затым проста перадайце « Prof. » у якасці значэння замест « Dr ». у 2-м радку макраса і « Прафесар » замест « Доктар » у 3-м радку макраса і вызначце спасылкавы нумар ячэйкі адпаведна.
Выснова
Гэты артыкул паказаў вам, як знайсці пэўныя тэксты ў радку ў Excel з дапамогай макраса VBA. Я спадзяюся, што гэты артыкул быў для вас вельмі карысным. Не саромейцеся задаваць любыя пытанні адноснатэма.