VBA жүйесінде InStr функциясын қалай пайдалану керек (3 қарапайым мысал)

  • Мұны Бөлісіңіз
Hugh West

Excel VBA кодтарымен жұмыс істеу барысында біз күрделі тапсырманы шағын бір жолды кодқа түрлендіретін бірнеше кірістірілген функцияларды кездестіреміз. InStr — Excel VBA жүйесінде қол жетімді функция, ол берілген позициядан бастап басқа берілген жолдың ішінде белгілі бір жолды іздейді. Бүгін мен VBA жүйесінде InStr функциясын басқа берілген жолдағы белгілі бір жолды іздеу үшін қалай пайдалануға болатынын көрсетемін.

Тәжірибе жұмыс кітабын жүктеп алыңыз

InStr Function.xlsm

VBA InStr функциясына кіріспе

  • Қорытынды

Белгілі бір позициядан бастап берілген жолдың ішінде белгілі бір жолды іздейді. Сәйкестікті тапса, сәйкестік басталған жерден берілген жолдағы орынды қайтарады.

  • Синтаксис

InStr([start ],string1,string2,[салыстырыңыз])

  • Аргументтер
АРГУМЕНТ ТАЛАП СИПАТТАУ

[бастау] Қосымша Ол іздеуді бастайтын орын. Әдепкі мән – 1.
string1 Міндетті Ол берілген жолды іздейтін жол.
2-жол Міндетті Ол берілген жол ішінде іздейтін жол.
[салыстырыңыз] Қосымша Салыстыру түрін көрсететін {-1,0,1,2} арасындағы сандық мән. Theәдепкі -1 (vbUseCompareOption). Опционды салыстыру операторы көрсетілмесе, екілік салыстыруды орындаңыз.

Ескертпе:

  • Бірақ [бастау] аргументі және [салыстырыңыз] аргументі міндетті емес, [салыстырыңыз] аргументін көрсетсеңіз, [бастау] аргументі қажет. Әйтпесе, ол қатені тудырады.
  • Егер [бастау] аргументінің біреуі немесе екеуі және [салыстырыңыз] аргументі Нөл<2 болса>, қатеге тап боласыз.
  • [салыстырыңыз] аргументіндегі төрт көрсетілген мән салыстырудың төрт түрлі түрін орындайды. Олар төменде аталды:
МӘН ТҰРАҚТЫ СИПАТТАУ

-1 vbUseCompareOption Көрсетілген салыстыруды орындайды Option Compare операторы.
0 vbBinaryCompare Екілік салыстыруды орындайды.
1 vbTextCompare Мәтінді салыстыруды орындайды.
2 vbDatabaseCompare Дерекқор негізінде салыстыруды орындайды .
  • Параметрлерді салыстыру операторы негізгі VBA коды басталмас бұрын берілген мәлімдеме болып табылады. Ол қажет болғанда кодтың екілік салыстыруды немесе мәтінді салыстыруды іздейтінін анықтайды.

Опция Мәтінді салыстыру

    • Қарапайым тілмен айтқанда , Екілік Салыстыру регистрге сезімталдықты білдіредісалыстыру.
    • Қарапайым тілмен айтқанда , Мәтінді салыстыру регистрді ескермейтін салыстыруды білдіреді.
  • Қайтарылатын мән
    • жол2 басталған жол1 позициясын қайтарады.
    • жол2 табылмаған жағдайда жол1 ішінде бастау позициясынан бастап, 0 қайтарады.
    • Егер жол1 нөлге тең болса, 0 мәнін қайтарады.
    • Егер жол2 ұзындығы нөлге тең болса, бастау аргументін қайтарады.
    • Соңында, жол1 немесе жол2 - Нөл , қатені қайтарады.

VBA InStr функциясын пайдаланудың 3 қарапайым мысалы

Ішінде бұл бөлімде Excel бағдарламасында VBA InStr функциясын қолданудың үш оңай мысалын көреміз. VBA кодтарындағы InStr функциясының бірінші мысалын қарастырайық.

1. VBA InStr функциясын пайдалану арқылы мекенжайдың электрондық пошта мекенжайы екенін немесе болмайтынын шешу

Мұнда біз тұтынушылардың кейбір байланыс мекенжайларын қамтитын деректер жинағын алдық. Мұндағы мақсатымыз мекенжайлардың электрондық пошта мекенжайлары екенін анықтау болады.

Енді анықтау үшін InStr функциясын пайдаланып VBA кодын әзірлейтін боламыз. бұл электрондық пошта мекенжайы ма, жоқ па. Ол үшін төмендегі қадамдарды орындаңыз.

Қадамдар:

  • Басында Әзірлеуші қойындысына өтіп, <тармағын таңдаңыз. 1>Visual Basic ( Немесе VBA ашу үшін Alt+F11) басыңыз.терезе.

  • Содан кейін VBA терезесінде Insert > Модуль .

  • Одан кейін модульге келесі кодты қойыңыз:
1146

  • Сонымен қатар біз ШЕШІМ деп аталатын функцияны жасадық. Ол мекенжайдың электрондық пошта мекенжайы немесе емес екенін шешеді. Функцияны бізде бар деректер жиынына қолданайық.
  • C5 ұяшығына келесі формуланы жазып алыңыз, содан кейін Толтыру тұтқасы арқылы қалған ұяшықтарды автотолтырыңыз.
=DECISION(B5)

  • Көріп отырғанымыздай, біз әрбір мекенжайдың электрондық пошта мекенжайы екенін анықтадық. немесе жоқ.

🎓 Кодекс қалай жұмыс істейді?

  • DECISION(1-жол ретінде) функциясы

Біріншіден, бұл DECISION деп аталатын функцияны жасайды. жол1 деп аталатын жол аргументі.

  • Кеңсіз позиция бүтін сан ретінде

Ол Позиция<деп аталатын бүтін айнымалыны жариялайды. 2>.

  • Position = InStr(1, string1, “@”, 0)

Бұл мәнін тағайындайды. Position айнымалысы InStr функциясының шығысы ретінде 1, string1, “@” және 0 аргументтері бар. Қысқаша айтқанда, бұл “@” бар мекенжайдағы орынды тағайындайды.

  • Егер Позиция = 0 болса, ШЕШІМ = “Электрондық пошта емес”

Ол ШЕШІМ функциясының шығысын “Электрондық пошта емес” ретінде тағайындайды, егер Орын айнымалы мән 0 , яғни мекенжайда “@” жоқ.

(Егер берілген жолда кез келген жол табылмаса, InStr функциясы 0 қайтарады).

  • Әйтпесе DECISION = “Электрондық пошта”

Бұл мекенжайда “@” болса, DECISION функциясының “Электрондық пошта” ретінде шығуы. Осылайша “@” бар мекенжайлар Электрондық пошта , ал қалғандары “Электрондық пошта емес” ретінде санатталады.

Ұқсас оқулар

  • Excel бағдарламасында VBA UCASE функциясын қалай пайдалану керек (4 мысал)
  • Excel VBA бағдарламасында MsgBox функциясын пайдалану (Толық нұсқаулық)
  • Excel бағдарламасында VBA SPLIT функциясын пайдалану (5 мысал)
  • Excel бағдарламасында VBA бағдарламасында LCase функциясын пайдалану (бар 4 мысал)
  • Excel VBA бағдарламасында Fix функциясын пайдалану жолы (4 мысал)

2. VBA InStr функциясын Кейбір электрондық пошта мекенжайларының кеңейтімдерін шығарып алу үшін пайдалану

Мұнда бізде кейбір тұтынушылардың кейбір электрондық пошта мекенжайларының тізімі берілген. Бұл жолы біз электрондық пошта мекенжайының кеңейтімін шығарамыз, мысалы, оларда gmail.com немесе yahoo.com .

Ол үшін төмендегі қадамдарды орындаңыз.

Қадамдар:

  • Бастау үшін, алдыңғы әдіс сияқты, жаңа VBA<2 ашыңыз> модулін таңдап, терезеге келесі кодты қойыңыз.
6510

  • Сонымен қатар, біз деп аталатын функцияны жасадық. кеңейтім . Ол кез келген электрондық пошта мекенжайының кеңейтімін шығарады.
  • Сонымен қатар, бұл функцияны бізде бар деректер жиынына қолданайық. Алдымен, осы формуланы C5 ұяшығына енгізіңіз, содан кейін Толтыру тұтқасын екі рет басыңыз.
=EXTENSION(B5)

  • Соңында біз барлық электрондық пошталардың кеңейтімін сәтті шығарғанымызды көреміз.

🎓 Код қалай жұмыс істейді?

  • EXTENSION функциясы (электрондық поштаны жол ретінде)

Бұл EXTENSION деп аталатын жаңа функцияны жасайды. Электрондық пошта деп аталатын жол аргументі.

  • Бүтін сан ретінде күңгірттеу орны

Бұл бөлім Орын деп аталатын бүтін айнымалы мәнді жариялайды .

  • Позиция = InStr(1, Email, “@”, 0)

Бұл <1 мәнін тағайындайды>Position айнымалы InStr функциясының шығысы ретінде 1, Email, “@” және 0 аргументтері бар. Қысқасы, бұл “@” бар Электрондық пошта орнын тағайындайды.

  • КЕҢЕЙТІЛУ = Оң(Электрондық пошта, (Len (Электрондық пошта) – Позиция))

Бұл бөлім КЕҢЕЙТІЛУ функциясының шығысын “@” символынан кейінгі таңбалар ретінде тағайындайды. Бұл Электрондық пошта қажетті кеңейтімі.

3. VBA InStr функциясын пайдалану арқылы атаудан атын немесе тегін шығарып алу

Соңында, біз бірегей басқа тапсырманы орындаймыз. Бұл жолы бізде кейбір қызметкерлердің есімдері баркомпания. Біз қызметкерлердің атын немесе тегін шығару функциясын құруға тырысамыз.

Ол үшін төмендегі қадамдарды орындаңыз.

Қадамдар:

  • Біріншіден, 1-әдіс сияқты, төмендегі кодты VBA  терезесіндегі жаңа модульге қойыңыз.
9411

  • Мұнда біз аттың атын немесе фамилиясын шығаратын ҚЫСҚА АТ деп аталатын функцияны жасадық. Осы формуланы деректер жинағымызға қолданайық.
  • Алғашында атын шығару үшін төмендегі формуланы C5 ұяшығына жазыңыз.
=SHORTNAME(B5,-1)

  • Соңында фамилияларды шығару үшін D5 -ге келесі формуланы жазамыз:
=SHORTNAME(B5,1)

  • Содан кейін, қалған ұяшықтарды Толтыру өңдеу құралы<2 арқылы автоматты түрде толтырсақ>, біз қалаған нәтижемізді көреміз.

🎓 Кодекс қалай жұмыс істейді?

  • SHORTNAME функциясы (аты жол ретінде, бірінші_немесе_соңғы бүтін сан ретінде)

Ол SHORTNAME<2 деп аталатын жаңа функцияны жасайды> Аты деп аталатын бір Жол аргументі және Бірінші_немесе_Соңғы атты бір бүтін аргументі бар.

  • Бүтін сан ретінде күңгірттену

Бұл бөлік Үзіліс деп аталатын жаңа бүтін айнымалыны жариялайды.

  • Үзіліс = InStr(1, Name, ” “, 0)

Ол Break айнымалысының мәнін аргументтері бар InStr функциясының шығысы ретінде тағайындайды 1, Аты, “ ” және 0 . Қысқаша айтқанда, бұл бос орын (« ») бар Аты орнын тағайындайды.

  • Егер Бірінші_немесе_Соңғы болса = -1 Содан кейін SHORTNAME = Сол(Аты, Үзіліс – 1)

Бұл жол SHORTNAME функциясының шығысын бос орын алдындағы таңбалар ретінде тағайындайды, егер Бірінші_немесе_Соңғы аргументі -1 болса. Бұл бірінші атау.

  • ҚЫСҚА АТ = Оң(Аты, Лен(Аты) – Үзіліс)

Бұл бөлім файлдың шығысын тағайындайды. ҚЫСҚА АТ функциясы бос орын -ден кейінгі таңбалар ретінде, егер Бірінші_немесе_Соңғы аргументі 1 болса. Бұл тегі.

Қорытынды

Осылайша VBA кодтарын InStr функциясымен жазуға болады, ол басқа берілген ішіндегі белгілі бір жолдың орнын анықтайды string, содан кейін әртүрлі пайдалану үшін өзіңіздің жеке функцияларыңызды жасай аласыз. Сонымен қатар, сұрақтарыңыз болса, бізге қоюға болады.

Хью Уэст – салада 10 жылдан астам тәжірибесі бар жоғары тәжірибелі Excel тренері және талдаушысы. «Бухгалтерлік есеп және қаржы» мамандығы бойынша бакалавр дәрежесі және іскерлік әкімшілендіру магистрі дәрежесі бар. Хью оқытуға құмар және ұстануға және түсінуге оңай бірегей оқыту әдісін әзірледі. Оның Excel бағдарламасындағы сараптамалық білімі бүкіл әлем бойынша мыңдаған студенттер мен мамандарға біліктіліктерін арттыруға және мансаптық жетістіктерге жетуге көмектесті. Блогы арқылы Хью өз білімін әлеммен бөліседі, жеке адамдар мен бизнеске толық әлеуетін ашуға көмектесу үшін тегін Excel оқулықтары мен онлайн тренингтерін ұсынады.