Пронађи текст у низу (функција ИНСТР) - Примери кода ВБА

ИНСТР функција

ВБА Инстр функција проверава да ли се низ текста налази у другом низу текста. Враћа 0 ако текст није пронађен. У супротном, враћа позицију знака на којој се налази текст.

Функција Инстр ради тачан шибице. Оператор ВБА Лике Оператор може се уместо тога користити за извођење нетачних подударања / подударања узорака коришћењем џокера.

Инстр Пример

Следећи исечак кода тражи реч „Погледај“ у низу „Тражи у овом низу“. Инстр функција враћа 1 јер се текст налази на првој позицији.

123 Суб ФиндСомеТект ()МсгБок ИнСтр ("Погледај у овом низу", "Погледај")Енд Суб

Овај други пример враћа 7 јер се текст налази на 7. позицији:

123 Суб ФиндСомеТект2 ()МсгБок ИнСтр ("Не гледај у овом низу", "Погледај")Енд Суб

Важно! Инстр функција је Велика и мала слова подразумевано. То значи да се „изглед“ неће подударати са „Погледај“. Да бисте учинили неосетљивим тест случај, прочитајте испод.

Инстр Синтакса

Синтакса функције Инстр је следећа:

1 Инстр ([почетак], низ, подниз, [упореди])

[почетак] (опционално) - Овај опциони аргумент је почетна позиција претраживања. Унесите 1 да бисте започели претрагу са позиције 1 (или оставите празно). Унесите 5 да бисте започели претрагу са положаја 5. Важно! ИНСТР функција израчунава положај знака бројећи од 1 НЕ са позиције [старт].

низ - Низ текста за претраживање.

подниз - Низ текста који треба пронаћи у примарном низу.

[упореди] (опционално) - Подразумевано, Инстр разликује велика и мала слова. Постављањем овог аргумента можете учинити Инстр Цасе неосетљивим:

Аргумент вб Валуе

Аргумент Интегер Опис
вбБинариЦомпаре

0

(Подразумевано) Осетљиво на велика и мала слова

вбТектЦомпаре

1

Не разликују

вбДатабасеЦомпаре

2

Само МС Аццесс. Користи информације у бази података за поређење.

Инстр почетна позиција

Почетна позиција Инстр -а вам омогућава да наведете позицију карактера на којој ћете започети претрагу. Имајте на уму, међутим, излаз Инстр ће се увек рачунати од 1.

Овде смо поставили почетну позицију на 3 да прескочимо први Б:

123 Суб Инстр_СтартПоситион ()МсгБок ИнСтр (3, "АБЦ АБЦ", "Б")Енд Суб

Резултат је 6 јер је други Б шести знак у низу.

ИНСТР тест не разликује велика и мала слова

Подразумевано, ВБА третира „Л“ различито од „л“. Другим речима, ВБА разликује велика и мала слова. Ово важи за све текстуалне функције. Да бисте ВБА учинили неосетљивим на велика и мала слова, поставите аргумент [успореди] на 1 или вбТектЦомпаре.

123 Јавни суб ФиндТект_ИгнореЦасе ()МсгБок ИнСтр (1, "Не гледај у овај низ", "погледај", вбТектЦомпаре)Енд Суб

Алтернативно, можете додати опцију Упореди текст на врх модула кода:

1 Опција Упореди текст
12345 Опција Упореди текстЈавни суб ФиндТект_ИгнореЦасе2 ()МсгБок ИнСтр ("Не гледај у овај низ", "погледај")Енд Суб

Опција Упореди текст ће утицати на сав код у том модулу. Ја лично ово стављам на врх сваког модула који се бави текстом јер ме никад не занимају разлике у величини слова.

ИнстрРев функција

Инстр функција претражује са леве стране. Уместо тога, можете претраживати са десне стране помоћу функције ИнстрРев. ИнстрРев функција ради врло слично функцији Инстр.

123 Суб ФиндСомеТект_ФромРигхт ()МсгБок ИнСтрРев ("Погледај у овом низу", "Погледај")Енд Суб

Баш као и функција Инстр, ово ће вратити 1 јер постоји само једна инстанца „Погледај“ у тексту. Али ако додамо други „Поглед“, видећете да он враћа положај крајње десног „Погледа“:

123 Суб ФиндСомеТект_ФромРигхт ()МсгБок ИнСтрРев ("Погледај у овом низу Погледај", "Погледај")Енд Суб

Затим ћемо прегледати још примера Инстр.

ИнСтринг Примери

Ако низ садржи подниз

Овде ћемо користити наредбу Иф за тестирање да ли стринг садржи подниз текста:

123456789 Публиц Суб ФиндСомеТект ()Ако је ИнСтр ("Погледај у овом низу", "погледај") = 0 ОндаМсгБок "Нема подударања"ИначеМсгБок "Најмање једно подударање"Крај АкоЕнд Суб

Пронађи текстуални низ у ћелији

Такође можете пронаћи низ у ћелији:

12345 Суб Финд_Стринг_Целл ()Ако је ИнСтр (Опсег ("Б2"). Вредност, "Др.")> 0 ЗатимОпсег ("Ц2"). Вредност = "Доктор"Крај АкоЕнд Суб

Или прођите кроз низ ћелија да бисте тестирали да ли ћелије садрже неки текст:

12345678910 Суб Сеарцх_Ранге_Фор_Тект ()Дим целл Ас РангеЗа сваку ћелију у домету ("б2: б6")Ако је ИнСтр (целл.Валуе, "Др.")> 0 Затимцелл.Оффсет (0, 1) .Валуе = "Доктор"Крај АкоСледећа ћелијаЕнд Суб

Пронађи позицију лика у низу

Овај код ће пронаћи положај једног знака у низу и доделити позицију променљивој:

1234 Суб Финд_Цхар ()Дим н Ас Лонгн = ИнСтр ("Овде погледајте овде", "Л")Енд Суб

Тражи низ за Ворд

Овај код ће тражити реч у низу:

12345678910 Суб Сеарцх_Стринг_Фор_Ворд ()Дим н Ас Лонгн = ИнСтр ("Овде погледајте овде", "Погледајте")Ако је н = 0 ТадаМсгБок "Реч није пронађена"ИначеМсгБок "Реч пронађена на положају:" & нКрај АкоЕнд Суб

Ако променљива садржи низ

Овај код ће тестирати да ли променљива низа садржи низ текста:

12345678 Под променљива_Садржи_Низ ()Дим стр Ас Стрингстр = "Погледајте овде"Ако је ИнСтр (стр, "Овде")> 0 ЗатимМсгБок "Овде је пронађено!"Крај АкоЕнд Суб

Инстр и функција Лефт

Инстр се може користити заједно са другим текстуалним функцијама као што су Лефт, Ригхт, Лен и Мид за скраћивање текста.

Помоћу функције Лефт можете исписати текст пре низа текста:

1234567891011 Суб Инстр_Лефт ()Дим стр Ас СтрингДим н Ас Лонгстр = "Погледајте овде"н = ИнСтр (стр, "Овде")МсгБок Лево (стр, н - 1)Енд Суб

Коришћење Инстр -а у Мицрософт Аццесс ВБА

Сви горе наведени примери раде потпуно исто у Аццесс ВБА као и у Екцел ВБА.

Да бисте сазнали више, прочитајте наш чланак: ВБА функције текста

Ви ће помоћи развој сајта, дељење страницу са пријатељима

wave wave wave wave wave