ВБА РегЕк

ВБА РегЕк „Регулар Екпрессион“ је веома користан у свету програмирања који се може користити за валидацију уноса веб страница, претраживање узорака речи у великом низу / тексту, за претраживање и замену низа.

Већина нас користи ФИНД, СУБСТИТУТЕ, ЛЕВО, ДЕСНО, заједно са МИД функцијама за манипулацију низом у Мицрософт Екцел-у, зар не? Међутим, ове функције имају своја ограничења која се не могу широко користити. Познавање ВБА регуларних израза уштедеће вам много времена у свакодневном животу. Редовни изрази су у ВБА кратки формирани као „РегЕк“ (или Регек). У овом туториалу ћемо погледати неке од РегЕк-а са њиховим коришћењем.

Можете користити ВБА РегЕк објект који је већ створен у Мицрософт ВБСцрипт књижици регуларних израза. Можете прегледати ову библиотеку кликом на Алатке - Референце - Мицрософт ВБСцрипт Регулар Екпрессионс.

РегЕк објект можете креирати и помоћу функције ЦреатеОбјецт у ВБА. Чини се погоднијим начином јер у овом случају не морате увек да упућујете библиотеку ВБСцрипт Регулар Екпрессионс.

Погледајте код испод:

 Дим регек као скуп објекта регек = ЦреатеОбјецт ("ВБСцрипт.РегЕкп") 

Овај код ће вам омогућити да креирате и приступите РегЕк објектима у макронаредби. Ја лично преферирам овај начин преко првог због његове крутости.

РегЕк функција омогућава манипулисање са следећим у дугом низу.

  • Дивље картице попут *, ? итд.
  • Груписани изрази заједно са дивљим картама.

РегЕк има испод параметара / својстава:

  1. Узорак - образац дефинисан у РегЕк-у на којем желите да радите.
  2. ИгнореЦасе - Занемарите велика слова слова (Цапс / Нон-Цапс су исти у низу).
  3. Глобал - Омогућује проналазак свих могућих подударања ако је постављено на ТРУЕ. Ако је постављено као ФАЛСЕ, оно ће наћи само прво подударање.
  4. МултиЛине - Омогућује усклађивање узорка у низу који се шири дуж више линија.

РегЕк олакшава следеће три операције:

  • Тест - Испитује да ли је наведени узорак присутан у низу или не. Ако је присутан, враћа се ТРУЕ, у супротном ФАЛСЕ.
  • Замените - Замењује оригинални узорак другим.
  • Екецуте - Враћа све претраживане подударне обрасце.

Како се користи Екцел ВБА РегЕк?

Научићемо како користити Екцел ВБА Регулар Екпрессион са неколико примера.

Можете преузети овај ВБА РегЕк Екцел предложак овде - ВБА РегЕк Екцел предложак

Екцел ВБА РегЕк - пример бр. 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 или Рун дугме и погледајте излаз у непосредном излазном прозору.

Овај код штампа сав број подударања за образац који је дефинисан.

Ствари које треба запамтити

  • ВБА Регулар Екпрессион се може користити само за проналажење струна. Очигледно, за нумеричке вредности нам таква функција не треба. Све нумеричке вредности разматране у сва три горе наведена примера су заправо дефинисане као низ.
  • Екцел ВБА РегЕк би се требао користити за манипулацију низом кад год постоји велики број података. Не коришћење ВБА РегЕк смањује ефикасност програма.
  • ВБА РегЕк не успева када постоје сценарији у којима се образац понавља н пута или бесконачно времена.

Препоручени чланци

Ово је водич за ВБА РегЕк. Овде смо расправљали о томе како користити Екцел ВБА РегЕк заједно са неколико практичних примера и бесплатним екцел предложаком. Можете и да прођете кроз друге наше предложене чланке -

  1. Како се користи ВБА замена у Екцелу?
  2. Коришћење уметања коментара у Екцелу
  3. Прављење ВБА ТИМЕР-а у Екцелу
  4. Уграђена ИФ формула у Екцелу

Категорија: