Како да пронајдете низа со VBA во Excel (8 примери)

  • Споделете Го Ова
Hugh West

Имплементацијата на VBA е најефективниот, најбрзиот и најбезбедниот метод за извршување на која било операција во Excel. Во оваа статија, ќе ви покажеме како да пронајдете одредени низи во друга дадена низа користејќи VBA во Excel.

Преземете шаблон за вежбање

Вие може да го преземете шаблонот за бесплатна пракса Excel од овде.

VBA за да најдете во String.xlsm

InStr Function

Microsoft Excel има вградена функција наречена функција InStr за да ја пронајде позицијата на одредени низи во дадена низа.

Генеричка синтакса:

InStr([start], string1, string2, [compare])

Тука,

Аргументи Задолжително/ Изборно Дефиниција
почеток Изборно Почетна позиција на пребарувањето.
  • Стандардно, функцијата InStr ја пресметува позицијата на знаците со броење од 1, а не од почетната позиција. Значи, можете да го оставите ова празно ако сакате.
string1 Задолжително Низата за пребарување, примарна низа.
string2 Потребна е Низата за пребарување во примарната низа .
спореди Изборно Функцијата InStr стандардно е чувствителна на букви. Но, ако сакате да извршите нечувствителен на букви InStr , тогаш можете да го пренесете аргументот овде за да извршите одредена споредба. Овој аргумент може да биде следниоввредности,
  • vbBinaryCompare -> врши бинарна споредба, повратна вредност 0
  • vbTextCompare -> врши споредба на текст, враќа вредност 1
  • vbDatabaseCompare -> врши споредба на базата на податоци, враќа вредност 2

Стандардно, InStr го зема vbBinaryCompare како аргумент за споредување.

8 лесни примери за наоѓање специфична позиција на низа во дадена низа користејќи VBA

Ајде да видиме неколку едноставни примери за да ги добиеме позициите на одредени низи во дадена низа користејќи VBA .

1. VBA за наоѓање позиција на текст во стринг

Подолу е пример за InStr за наоѓање позицијата на текстот во низата.

  • Притиснете Alt + F11 на тастатурата или одете во картичката Програмер -> Visual Basic за да се отвори Visual Basic Editor .

  • Во скокачкиот прозорец со код, од лентата со мени , кликнете Вметни -> Модул .

  • Сега во прозорецот со код, напишете едноставна програма InStr во VBA Sub Постапка (види подолу).
3990

Вашиот код сега е подготвен за извршување.

  • Притиснете F5 на тастатурата или од лентата со мени изберете Стартувај -> Стартувај Sub/UserForm . Можете исто така само да кликнете на мала икона Play во лентата под-мени за да го извршите макрото.

Ќе видите дека Појавното поле за пораки ќе ви даде бројобјавување на позицијата на текстот што сакавте да го проверите.

Објаснување:

Нашата примарна низа, „ Среќа е избор “ е реченица од 21 буква (со празни места) и сакавме да ја најдеме позицијата на текстот „ избор “ во таа низа. Текстот „ избор “ започна од 16-тата позиција на примарната низа, па затоа го добивме бројот 16 како наш излез во полето за пораки.

2. VBA за наоѓање текст од специфична позиција во стринг

Сега ајде да откриеме што би се случило ако сакаме да ја добиеме позицијата од одреден број.

  • Исто како претходно, отворете го Visual Basic Editor од картичката Developer и Вметнете Модул во прозорецот за код.
  • Во прозорецот со код, напишете едноставна програма InStr прикажана погоре и префрлете ја вредноста во аргументот за почеток според позицијата од која сакате да го броите вашиот текст.
9109

  • Следно, Изврши кодот.

Ќе видите дека полето за пораки што се појавуваат ќе ви даде број кој ја декларира позицијата на текстот почнувајќи од одредена позиција што сакавте да ја проверите.

Објаснување:

Како што веќе знаевме (од фаза 1 дискусија) дека текстот „ избор “ започнува од позицијата 16 , па вметнавме две „ избор “ во примарната низа и поставете го 17 како нашПрвиот параметар за прескокнување на првиот „ избор “. Така, ние го извршивме горното макро и ни го покажа бројот на позицијата 27 што е точно бројот на позицијата на второто изборот “ во дадената низа.

3. VBA за наоѓање текст со функцијата InStr без букви во стрингот

Од воведувањето на функцијата InStr веќе знаете дека стандардно, функцијата InStr е осетлив на букви. Ајде да го дознаеме тоа со пример.

Види го следниов код VBA , каде што сакавме да ја најдеме позицијата на зборот „ Избор ” со голема „С“ во низата „ Среќата е избор “ каде што изборот е напишан со мало „в“ .

  • Изврши кодот и најде 0 како наш излез.

Тоа е затоа што функцијата InStr поинаку ги третира големото „C“ и малото „c“ . Така го бараше зборот „ Избор “ во низата и не се совпаѓаше, па врати 0 .

  • За да ја направите функцијата InStr нечувствителна на букви , поставете го аргументот за споредување на vbTextCompare (видете подолу).
6900

  • Изврши кодот.

Ќе ја добиете позицијата на текстот од низата, без разлика дали текстот е напишан со големи или мали букви .

4. VBA за да се најде текст од десната страна на низата

Досега функцијата InStr ни ја даваше позицијата само од левата страна на низата. Но, што ако сакате да ја пронајдете позицијата на текстот од десната страна на низата.

Функцијата InStrRev пребарува од десната страна. Функцијата InStrRev работи многу слично на функцијата InStr и ќе ви ја најде позицијата на текстот од десната страна на низата.

Видете ги следните примери за да ја разберете разликата.

  • Ако го извршиме следниов код со функцијата InStr тогаш,

ни ја дава позицијата ( 16 ) на првиот текст „ избор “.

  • Но, ако го извршиме истиот код со функцијата InStrRev тогаш,

тоа ни ја дава позицијата ( 27 ) од последниот текст „ избор “.

Слични читања:

  • Find Next користејќи VBA во Excel (2 примери)
  • Како да најдете и замените користејќи VBA (11 начини)
  • Најдете точно совпаѓање користејќи VBA во Excel (5 начини)

5. VBA за да ја пронајдете позицијата на знакот во низата

Можете и да ја пронајдете позицијата на одреден знак во низата на ист начин како што го најдовте текстот.

  • Копирате го следете го кодот во вашиот прозорец со код VBA
5186

  • И Стартувај макрото.

Првиот „ е “ во нашата дадена низа е набројот 7 позиција.

6. VBA за наоѓање подниза во низа

Тука ќе научиме како да откриеме дали низата содржи подниза или не.

За да го добиеме тоа, имаме за да извршите IF изјава во нашиот код.

  • Исто како и претходно, отворете го Visual Basic Editor од картичката Developer и Вметнете Модул во прозорецот со код.
  • Во прозорецот со код, копирајте го следниот код и залепете го.
9711

Вашиот кодот сега е подготвен за извршување.

  • Изврши макрото.

Ако вашата низа ја содржи поднизата тогаш ќе добиете пронајдено совпаѓање , во спротивно, нема да се врати што не е пронајдено совпаѓање. Во нашиот пример, сакавме да откриеме дали нашата примарна низа „ Среќата е избор “ го содржи зборот „ избор “ или не. Како и да е, добиваме резултат Пронајдено совпаѓање .

7. VBA за наоѓање низа во опсег на ќелии

Можете да пребарувате одреден текст во опсегот на ќелиите и да вратите одредена низа.

Погледнете го следниот пример каде што ќе најдете „ Д-р. “ и кога ќе се совпадне ќе се врати „ Доктор “.

  • Подолу е кодот за да го добиете резултатот што беше дискутиран погоре,
6444

  • Изврши кодот и резултатот е прикажан подолу

  • Можете да го менувате макрото според вашата потреба. На пример, ако сакатеда го пронајдете „ Проф. “ во која било ќелија од низата и да добиете „ Професор “ како враќање, а потоа едноставно поминете „ Проф. “ како вредност наместо „ Dr “. во 4-та линија од макрото и „ Професор “ наместо „ Доктор “ во 5-та линија од макрото и дефинирајте ја соодветно бројот на опсегот на ќелиите.

8. VBA за наоѓање низа во ќелија

Можете и пребарате одреден текст во една ќелија од низата и да вратите одредена низа.

  • Копирајте го следниов код и залепете го во прозорецот за код.
7619

Ќе бара „ Dr. “ во Ќелија B5 и ако најде совпаѓање, тогаш враќа „ Доктор “ во Ќелија C5 .

  • Можете да го менувате макрото според вашата потреба. На пример, ако сакате да го најдете „ Проф. “ во која било ќелија од низата и да добиете „ Професор “ како враќање, потоа едноставно префрлете го „ Prof. “ како вредност наместо „ Dr “. во вториот ред од макрото и „ Професор “ наместо „ Доктор “ во третиот ред од макрото и дефинирајте го Референтен број на ќелија соодветно.

Заклучок

Оваа статија ви покажа како да најдете одредени текстови во низа во Excel користејќи VBA макро. Се надевам дека овој напис беше многу корисен за вас. Слободно поставувајте какви било прашања во врска сотемата.

Хју Вест е високо искусен тренер и аналитичар на Excel со повеќе од 10 години искуство во индустријата. Има диплома за сметководство и финансии и магистер по бизнис администрација. Хју има страст за предавање и има развиено уникатен пристап на наставата кој е лесен за следење и разбирање. Неговото стручно познавање на Excel им помогна на илјадници студенти и професионалци ширум светот да ги подобрат своите вештини и да се истакнат во нивните кариери. Преку својот блог, Хју го споделува своето знаење со светот, нудејќи бесплатни упатства за Excel и онлајн обука за да им помогне на поединците и бизнисите да го достигнат својот целосен потенцијал.