ВБА РегЕк
ВБА РегЕк „Регулар Екпрессион“ је веома користан у свету програмирања који се може користити за валидацију уноса веб страница, претраживање узорака речи у великом низу / тексту, за претраживање и замену низа.
Већина нас користи ФИНД, СУБСТИТУТЕ, ЛЕВО, ДЕСНО, заједно са МИД функцијама за манипулацију низом у Мицрософт Екцел-у, зар не? Међутим, ове функције имају своја ограничења која се не могу широко користити. Познавање ВБА регуларних израза уштедеће вам много времена у свакодневном животу. Редовни изрази су у ВБА кратки формирани као „РегЕк“ (или Регек). У овом туториалу ћемо погледати неке од РегЕк-а са њиховим коришћењем.
Можете користити ВБА РегЕк објект који је већ створен у Мицрософт ВБСцрипт књижици регуларних израза. Можете прегледати ову библиотеку кликом на Алатке - Референце - Мицрософт ВБСцрипт Регулар Екпрессионс.
РегЕк објект можете креирати и помоћу функције ЦреатеОбјецт у ВБА. Чини се погоднијим начином јер у овом случају не морате увек да упућујете библиотеку ВБСцрипт Регулар Екпрессионс.
Погледајте код испод:
Дим регек као скуп објекта регек = ЦреатеОбјецт ("ВБСцрипт.РегЕкп")
Овај код ће вам омогућити да креирате и приступите РегЕк објектима у макронаредби. Ја лично преферирам овај начин преко првог због његове крутости.
РегЕк функција омогућава манипулисање са следећим у дугом низу.
- Дивље картице попут *, ? итд.
- Груписани изрази заједно са дивљим картама.
РегЕк има испод параметара / својстава:
- Узорак - образац дефинисан у РегЕк-у на којем желите да радите.
- ИгнореЦасе - Занемарите велика слова слова (Цапс / Нон-Цапс су исти у низу).
- Глобал - Омогућује проналазак свих могућих подударања ако је постављено на ТРУЕ. Ако је постављено као ФАЛСЕ, оно ће наћи само прво подударање.
- МултиЛине - Омогућује усклађивање узорка у низу који се шири дуж више линија.
РегЕк олакшава следеће три операције:
- Тест - Испитује да ли је наведени узорак присутан у низу или не. Ако је присутан, враћа се ТРУЕ, у супротном ФАЛСЕ.
- Замените - Замењује оригинални узорак другим.
- Екецуте - Враћа све претраживане подударне обрасце.
Како се користи Екцел ВБА РегЕк?
Научићемо како користити Екцел ВБА Регулар Екпрессион са неколико примера.
Можете преузети овај ВБА РегЕк Екцел предложак овде - ВБА РегЕк Екцел предложакЕкцел ВБА РегЕк - пример бр. 1
Овде ћете проверити да ли је наведени текст присутан у тексту помоћу РегЕк.Тест.
Следите доле наведене кораке да бисте користили ВБА РегЕк.
Корак 1: Дефинишите нови под-поступак за креирање макроа.
Шифра:
Суб РегЕк_Ек1 () Крај Суб
Корак 2: Дефинирајте две променљиве РегЕк као објект који се може користити за креирање РегЕк објекта и Стр као низ.
Шифра:
Суб РегЕк_Ек1 () Дим РегЕк као објект, Стр као стринг стринг Суб
Корак 3: Креирајте РегЕк објект помоћу функције ЦреатеОбјецт.
Шифра:
Суб РегЕк_Ек1 () Дим РегЕк као објект, Стр као низ стринг Сет РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") Енд Суб
Корак 4: Додајте образац за тестирање помоћу функције РегЕк.
Шифра:
Под РегЕк_Ек1 () Дим РегЕк као објект, Стр као низ стринг Сет РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "(0-9) +" Енд витх Енд Суб
Корак 5: Дефинишите низ унутар којег требамо провјерити дани образац.
Шифра:
Под РегЕк_Ек1 () Дим РегЕк као објект, Стр као низ стринга РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "(0-9) +" Енд витх Стр = "Мој број бицикла је МХ-12 ПП- 6145 "Крај Суб
Корак 6: Користите РегЕк.Тест за тестирање да ли је дати узорак присутан у променљивој именом Стр. Такође користите Дебуг.Принт за испис резултата (Труе или Фалсе) на непосредном прозору.
Шифра:
Под РегЕк_Ек1 () Дим РегЕк као објект, Стр као низ стринга РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "(0-9) +" Енд витх Стр = "Мој број бицикла је МХ-12 ПП- 6145 "Дебуг.Принт РегЕк.Тест (Стр) Крај Суб
Корак 7: Притисните Ф5 или Рун дугме да бисте покренули код и видели излаз. (Притисните ЦТРЛ + Г да отворите тренутни прозор)
Овде смо направили РегЕк објект. Затим смо помоћу ВБА РегЕк-а проверили да ли је дат низ („(0-9) +“) који укључује све бројеве / комбинацију бројева од 0 до 9 у низу дефинисаном уз помоћ РегЕк.Тест ( Стр). Излаз "Труе" испод непосредног прозора показује да је образац "(0-9) +" присутан у датом низу.
Екцел ВБА РегЕк - пример бр. 2
Овде ћете видети како можете заменити један низ другим користећи РегЕк.Реплаце.
Следите доле наведене кораке да бисте користили ВБА РегЕк.
Корак 1: Дефинишите нови под стринг да бисте креирали макро.
Шифра:
Суб РегЕк_Ек2 () Крај Суб
Корак 2: Исто као у првом примјеру, дефинирајте двије варијабле РегЕк као објект који може садржавати вриједност објекта РегЕк и Стр који ће садржавати вриједност низа коју ћете дефинирати.
Шифра:
Суб РегЕк_Ек2 () Дим РегЕк као објект, Стр као стринг стринг Суб
Корак 3: Дефинирајте РегЕк објект и поставите га на РегЕк варијаблу помоћу функције ЦреатеОбјецт.
Шифра:
Суб РегЕк_Ек2 () Дим РегЕк као објект, Стр као низ стринг Сет РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") Крај Суб
Корак 4: Уметните образац који желите заменити помоћу .Паттерн функције.
Шифра:
Суб РегЕк_Ек2 () Дим РегЕк као објект, Стр као стринг стринг РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123" Крај са крајњим пот
Корак 5: Користите .ГЛОБАЛ = ТРУЕ који ако ТРУЕ дозвољава замену свих одговарајућих образаца у датом низу. Ако ФАЛСЕ замењује само први одговарајући образац.
Шифра:
Под РегЕк_Ек2 () Дим РегЕк као објект, стр као низ постављен РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123" .Глобал = Труе 'Ако је ФАЛСЕ, замењује само први одговарајући низ' Енд витх Енд Суб
Корак 6: Након краја са, дефинишите низ са којим желите да се подударају и замените узорак.
Шифра:
Под РегЕк_Ек2 () Дим РегЕк као објект, стр као низ постављен РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123" .Глобал = Труе 'Ако је ФАЛСЕ, замењује само први одговарајући низ' Енд витх Стр = "123-654-000-АПИ-123-КСИЗ-888" Крај Суб
Корак 6: Помоћу РегЕк.Реплаце замените вредност обрасца у датом низу другим текстом.
Шифра:
Под РегЕк_Ек2 () Дим РегЕк као објект, стр као низ постављен РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123" .Глобал = Труе 'Ако је ФАЛСЕ, замењује само први одговарајући низ' Енд витх Стр = „123-654-000-АПИ-123-КСИЗ-888“ Дебуг.Принт РегЕк.Реплаце (Стр, „Замењени“) Енд Суб
Овде смо желели да образац „123“ буде замењен неким другим комадом струне. РегЕк.Реплаце омогућава замену вредности обрасца делом низа (дефинисали смо „Замењено“). Молимо погледајте и .Глобал = ТРУЕ. Што је условна изјава. Ако је Глобал = ТРУЕ, функција Замијени замјењује све одговарајуће обрасце другим низом. Ако је ГЛОБАЛ = ФАЛСЕ, функција Реплаце замењује само први одговарајући образац, а остали су занемарени.
Корак 7: Притисните типку Рун или Ф5 да бисте покренули овај код и погледали излаз у прозору непосредног излаза.
Екцел ВБА РегЕк - пример бр. 3
Овде ћете видети како можете пронаћи све одговарајуће обрасце у низу користећи РегЕк.Екецуте.
Следите доле наведене кораке да бисте користили Екцел ВБА РегЕк.
Корак 1: Дефинишите нови под-поступак додавања макроа.
Шифра:
Суб РегЕк_Ек3 () Крај Суб
Корак 2: Слиједите кораке исте као у претходна два примјера за дефинирање регуларног израза и варијабле која може садржати вриједност низа.
Шифра:
Суб РегЕк_Ек3 () Дим РегЕк као објект, Стр као низ стринг РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") Крај Суб
Корак 3: Уметните образац за који желите да буде изведен и који се подудара у датом низу.
Шифра:
Суб РегЕк_Ек3 () Дим РегЕк као објект, Стр као низ стринг Сет РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123-КСИЗ" Енд витх Енд Суб
Корак 4: Користите .ГЛОБАЛ = ТРУЕ тако да ће сва подударања бити снимљена у датом низу.
Шифра:
Суб РегЕк_Ек3 () Дим РегЕк као објект, Стр као низ стринг Сет РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123-КСИЗ" .Глобал = Труе Енд витх Енд Суб
Корак 5: Дефинишите низ након краја са којим требате користити Екецуте и пронаћи све одговарајуће обрасце.
Шифра:
Под РегЕк_Ек3 () Дим РегЕк као објекат, Стр као низ стринга РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123-КСИЗ" .Глобал = Труе Енд са Стр = "123-КСИЗ-326-АБЦ- 983-670-ПКР-123-КСИЗ "Крај Суб
Корак 6: Сада употријебите Екецуте на варијабли именованој низу да бисте сазнали сва подударања повезана с даним обрасцем.
Шифра:
Под РегЕк_Ек3 () Дим РегЕк као објекат, Стр као низ стринга РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123-КСИЗ" .Глобал = Труе Енд са Стр = "123-КСИЗ-326-АБЦ- 983-670-ПКР-123-КСИЗ "Подеси подударности = РегЕк.Екецуте (Стр) Енд Суб
Корак 7: Користите за петљу за штампање вредности свих подударних узорака у непосредни излазни прозор.
Шифра:
Под РегЕк_Ек3 () Дим РегЕк као објекат, Стр као низ стринга РегЕк = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") са РегЕк .Паттерн = "123-КСИЗ" .Глобал = Труе Енд са Стр = "123-КСИЗ-326-АБЦ- 983-670-ПКР-123-КСИЗ "Постави подударање = РегЕк.Екецуте (Стр) за сваки меч у утакмицама Дебуг.Принт Матцх.Валуе Следећи меч Крај Суб
Корак 8: Покрените овај код притиском на Ф5 или Рун дугме и погледајте излаз у непосредном излазном прозору.
Овај код штампа сав број подударања за образац који је дефинисан.
Ствари које треба запамтити
- ВБА Регулар Екпрессион се може користити само за проналажење струна. Очигледно, за нумеричке вредности нам таква функција не треба. Све нумеричке вредности разматране у сва три горе наведена примера су заправо дефинисане као низ.
- Екцел ВБА РегЕк би се требао користити за манипулацију низом кад год постоји велики број података. Не коришћење ВБА РегЕк смањује ефикасност програма.
- ВБА РегЕк не успева када постоје сценарији у којима се образац понавља н пута или бесконачно времена.
Препоручени чланци
Ово је водич за ВБА РегЕк. Овде смо расправљали о томе како користити Екцел ВБА РегЕк заједно са неколико практичних примера и бесплатним екцел предложаком. Можете и да прођете кроз друге наше предложене чланке -
- Како се користи ВБА замена у Екцелу?
- Коришћење уметања коментара у Екцелу
- Прављење ВБА ТИМЕР-а у Екцелу
- Уграђена ИФ формула у Екцелу