Преглед садржаја
Док радимо са Екцел ВБА кодовима, наилазимо на неколико уграђених функција које претварају сложен задатак у мали код у једном реду. ИнСтр је таква функција доступна у Екцел ВБА која тражи одређени стринг унутар другог датог низа почевши од дате позиције. Данас ћу показати како можете да користите функцију ИнСтр у ВБА за тражење одређеног стринга унутар другог датог низа.
Преузмите радну свеску за вежбу
ИнСтр Фунцтион.клсм
Увод у ВБА ИнСтр функцију
- Резиме
Тражи одређени низ унутар датог низа, почевши од дате позиције. Ако пронађе подударање, враћа позицију у датом низу одакле је подударање почело.
- Синтакса
ИнСтр([старт ],стринг1,стринг2,[упореди])
- Аргументи
АРГУМЕНТ | ЗАХТЕВ | ОПИС
|
---|---|---|
[старт] | Опционално | Позиција са које ће почети претраживање. Подразумевано је 1. |
стринг1 | Обавезно | Стринг у оквиру којег се тражи дати стринг. |
стринг2 | Обавезно | Стринг који тражи у оквиру датог низа. |
[упореди] | Опционо | Нумеричка вредност између {-1,0,1,2} која одређује тип поређења. Тхеподразумевано је -1 (вбУсеЦомпареОптион). Ако наредба Оптион Цомпаре није наведена, извршите бинарно поређење. |
Напомена:
- Иако је [старт] аргумент и [упореди] аргумент су опциони, потребан вам је аргумент [старт] ако наведете аргумент [упореди] . У супротном, појавиће се грешка.
- Ако је један или оба аргумента [старт] и [упореди] аргумент Нулл , суочићете се са грешком.
- Четири наведене вредности у аргументу [упореди] врше четири различита типа поређења. Они су наведени у наставку:
ВРЕДНОСТ | ЦОНСТАНТ | ДЕСЦРИПТИОН
|
---|---|---|
-1 | вбУсеЦомпареОптион | Обавља поређење наведено у наредба Оптион Цомпаре. |
0 | вбБинариЦомпаре | Изводи бинарно поређење. |
1 | вбТектЦомпаре | Изводи поређење текста. |
2 | вбДатабасеЦомпаре | Изводи поређење на основу ваше базе података . |
- Опција Цомпаре наредба је наредба пре него што почне главни ВБА код. Одређује да ли ће код тражити бинарно поређење или поређење текста када је то потребно.
Опција Упореди текст
-
- Једноставним речима , Бинарно поређење значи осетљиво на велика и мала словапоређење.
- Једноставно речено , Поређење текста значи поређење без обзира на велика и мала слова.
- Повратна вредност
- Враћа позицију у стринг1 са које је започео стринг2 .
- У случају да стринг2 није пронађен унутар стринг1 почевши од почетне позиције, враћа 0.
- Ако је стринг1 нулте дужине, враћа 0.
- Ако је стринг2 нулте дужине, враћа аргумент старт .
- И коначно, ако је било који од стринг1 или стринг2 је Нулл , враћа грешку.
3 једноставна примера за коришћење ВБА ИнСтр функције
У У овом одељку видећемо три једноставна примера примене ВБА ИнСтр функције у Екцел-у. Хајде да видимо први пример функције ИнСтр у ВБА кодовима.
1. Одлучивање да ли је адреса е-маил адреса или не користећи ВБА ИнСтр функцију
Овде смо узели скуп података који садржи неке контакт адресе купаца. Наш циљ овде ће бити да идентификујемо да ли су адресе е-поште или не.
Сада ћемо развити ВБА код помоћу функције ИнСтр за идентификацију да ли је то адреса е-поште или не. Да бисте то урадили, следите доленаведене кораке.
Кораци:
- На почетку идите на картицу Програмер и изаберите Висуал Басиц ( Или притисните Алт+Ф11) да отворите ВБА прозор.
- Затим, у прозору ВБА идите на Инсерт &гт; Модул .
- Након тога, на модул налепите следећи код:
1242
- Штавише, направили смо функцију под називом ДЕЦИСИОН . Он одлучује да ли је адреса адреса е-поште или не. Хајде да применимо функцију на скуп података који имамо.
- У ћелији Ц5 , запишите следећу формулу и затим аутоматски попуните остале ћелије користећи Ручица за попуњавање .
=DECISION(B5)
- Као што видимо, идентификовали смо сваку адресу да ли је адреса е-поште или не.
🎓 Како функционише код?
- Функција ДЕЦИСИОН(стринг1 као стринг)
Прво, ово креира функцију под називом ДЕЦИСИОН са стринг аргумент под називом стринг1 .
- Дим Поситион Ас Интегер
Он декларише целобројну променљиву под називом Поситион .
- Позиција = ИнСтр(1, стринг1, “@”, 0)
Ово додељује вредност Променљива Поситион као излаз функције ИнСтр са аргументима 1, стринг1, “@” и 0 . Укратко, ово додељује позицију у адреси на којој постоји “@” .
- Ако је позиција = 0, онда ДЕЦИСИОН = “Нот Емаил”
Она додељује излаз функције ДЕЦИСИОН као „Нот Емаил” , ако је Позиција променљива је 0 , што значи да у адреси није било “@” .
(Подсетите се ако било који стринг није пронађен унутар датог низа, ИнСтр функција враћа 0 ).
- Елсе ДЕЦИСИОН = “Емаил”
Ово додељује излаз функције ДЕЦИСИОН као “Емаил” ако је у адреси било “@” . Тако су адресе на којима постоји “@” категорисане као Е-пошта , а остале су категорисане као „Не е-пошта” .
Слична очитавања
- Како користити ВБА УЦАСЕ функцију у Екцел-у (4 примера)
- Користити функцију МсгБок у Екцел ВБА (Потпуно упутство)
- Како користити ВБА СПЛИТ функцију у Екцел-у (5 примера)
- Користити функцију ЛЦасе у ВБА у Екцел-у (са 4 примера)
- Како користити функцију поправке у Екцел ВБА (4 примера)
2. Коришћење ВБА ИнСтр функције за Извлачење екстензија неких адреса е-поште
Овде имамо листу неких адреса е-поште неких клијената. Овај пут ћемо издвојити екстензију адресе е-поште на пример да ли имају гмаил.цом или иахоо.цом .
Да бисте то урадили, следите доле наведене кораке.
Кораци:
- За почетак, као и претходни метод, отворите нови ВБА модул и налепите следећи код у прозор.
8668
- Поред тога, креирали смо функцију под називом ЕКСТЕНСИОН . Извлачи екстензију било које адресе е-поште.
- Даље, хајде да применимо ову функцију на скуп података који имамо. Прво унесите ову формулу у ћелију Ц5 , а затим двапут кликните на Филл Хандле .
=EXTENSION(B5)
- На крају, можемо видети да смо успешно издвојили проширење свих е-порука.
🎓 Како код функционише?
- Функција ЕКСТЕНСИОН(Емаил Ас Стринг)
Ово креира нову функцију под називом ЕКСТЕНСИОН , са стринг аргумент под називом Емаил .
- Дим Поситион Ас Интегер
Овај део декларише целобројну променљиву под називом Поситион .
- Позиција = ИнСтр(1, Емаил, “@”, 0)
Ово додељује вредност <1 Променљива>Позиција као излаз функције ИнСтр са аргументима 1, Емаил, “@” и 0 . Укратко, ово додељује позицију у Емаил где постоји “@” .
- ЕКСТЕНСИОН = Ригхт(Емаил, (Лен (Емаил) – Позиција))
Овај део додељује излаз функције ЕКСТЕНСИОН као знакове после симбола “@” . Ово је обавезна екстензија за Емаил .
3. Издвајање имена или презимена из имена користећи ВБА ИнСтр функцију
Коначно, извршићемо јединствено другачији задатак. Овог пута имамо имена неких запослених уКомпанија. И покушаћемо да направимо функцију за издвајање имена или презимена запослених.
Да бисте то урадили, следите доле наведене кораке.
Кораци:
- Прво, слично методу 1 , налепите код испод у нови модул у ВБА прозору.
6958
- Овде смо креирали функцију под називом СХОРТНАМЕ која издваја или име или презиме из имена. Хајде да применимо ову формулу на наш скуп података.
- Прво, да бисте издвојили име, запишите формулу испод у ћелију Ц5 .
=SHORTNAME(B5,-1)
- На крају, да бисмо издвојили презимена, записујемо следећу формулу у Д5 :
=SHORTNAME(B5,1)
- Након тога, ако аутоматски попунимо остале ћелије са Филл Хандлер , видећемо наш жељени резултат.
🎓 Како функционише код?
- Функција СХОРТНАМЕ(Име као стринг, Фирст_ор_Ласт Ас Интегер)
Креира нову функцију под називом СХОРТНАМЕ са једним аргументом стринга под називом Име и једним целобројним аргументом под називом Фирст_ор_Ласт .
- Дим Бреак Ас Интегер
Овај део декларише нову целобројну променљиву под називом Бреак .
- Бреак = ИнСтр(1, Наме, ” “, 0)
Додељује вредност променљиве Бреак као излаз функције ИнСтр са аргументима 1, Име, “ ” и 0 . Укратко, ово додељује позицију у Наме где постоји размак (“ ”).
- Ако је Фирст_ор_Ласт = -1 Онда СХОРТНАМЕ = Лефт(Име, Бреак – 1)
Ова линија додељује излаз функције СХОРТНАМЕ као знакове испред размака , ако је аргумент Фирст_ор_Ласт -1. Ово је прво име.
- СХОРТНАМЕ = Десно(Име, Лен(Име) – Прекид)
Овај део додељује излаз СХОРТНАМЕ функционише као знакови после размака , ако је аргумент Фирст_ор_Ласт 1. Ово је презиме.
Закључак
На овај начин можете писати ВБА кодове помоћу функције ИнСтр која открива позицију одређеног низа унутар другог датог стринг, а затим можете креирати сопствене функције за различите намене. Штавише, ако имате било каквих питања, слободно нас питајте.