Како да пронајдете подниза користејќи VBA (9 начини)

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

Ако барате некои од најлесните начини да пронајдете подниза користејќи VBA, тогаш сте на вистинското место. Откако ќе ја поминете оваа статија, ќе можете да ја пронајдете позицијата на поднизата или да извлечете податоци користејќи ја оваа подниза или лесно да го промените форматот на поднизата. Ајде да навлеземе во статијата.

Преземи работна книга

Примерна содржина

9 начини да се најде подниза користејќи VBA

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

Ја извршив оваа задача користејќи ја верзијата Microsoft Excel 365 , можете да користите која било друга верзија според вашата погодност.

Метод-1: Наоѓање подниза во низа со помош на VBA

Ако сакате да ја пронајдете саканата подниза во низа користејќи VBA, можете да користите функцијата InStr во кодот VBA.

Чекор-01 :

➤Одете во Програмер Tab>> Visual Basic Опција

Потоа, Visual Basic Editor ќе се отвори.

➤Одете на Вметни Tab>> Модул Опција

Потоа, ќе се креира Модул .

Чекор-02 :

➤Напишете го следниов код

8023

Тука, InStr(1, “ Мислам затоа сум“, „мислам“) ќе ја врати позицијата на поднизата од низата. 1 епочетна позиција, „ Мислам затоа сум“ е низата каде што ќе ја најдете посакуваната подниза, а „мислам“ е поднизата што сакате да ја најдете. Стандардно е чувствителен на букви, затоа внимавајте на буквите на вашата подниза што сакате да ја пребарувате.

➤Притиснете F5

Резултат :

Потоа, ќе го добиете следното Поле за пораки што ја содржи позицијата на поднизата „мислам“ .

Метод-2: Наоѓање подниза што не е чувствителна на големи букви во низа

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

Чекор-01 :

➤Следете го Чекор-01 од Метод-1

9351

Овде, vbTextCompare се користи за да се најде подниза нечувствителна на големи букви.

➤Притиснете F5

Резулта>

Можете да го сторите истото со користење на следниов код.

5044

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

➤Притиснете F5

Резултат :

Потоа, ќе добиете Ќе го добиеме следново Поле за пораки што ја содржи позицијата на поднизата „мислам“ .

Метод-3: Користење на функцијата InstrRev во VBA

Овде, ќе го покажам начинот да се најде подниза од крајот наниза.

Чекор-01 :

➤Следете го Чекор-01 од Метод-1

5684

InStrRev ќе ја најде поднизата од десната страна наместо од левата страна.

➤Притиснете F5

Резултат :

Потоа, ќе ја добиете следнава Поле за пораки што ја содржи позицијата на втората „Јас“ подстринг од десна страна.

Метод-4: Наоѓање на позицијата на подниза во низа во опсег на податоци

Ако сакате да го најдете специјалниот знак „@“ во Ид на е-пошта , потоа следете го овој метод. Ја додадов овде колоната Позиција за оваа цел.

Чекор-01 :

➤Следете Чекор-01 од Метод-1

7176

Ќе создаде функција со име FindSubstring (можете да користите кое било друго име)

вредноста е референца на ќелијата што ја содржи низата и таа е декларирана како Опсег .

Чекор -02 :

➤Изберете го излезот Cell E5

➤Впишете ја следнава функција (создадена од VBA )

=FindSubstring(D5)

D5 е ќелијата што ја содржи низата.

➤Притиснете ENTER

➤Повлечете ја надолу Рачка за пополнување Алатка

Резултат :

Потоа, ќе ги добиете позициите на специјалниот знак @“ во Ид на е-пошта .

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

  • Како да најдетеНиза во ќелија користејќи VBA во Excel (2 методи)
  • Најдете следно користејќи VBA во Excel (2 примери)
  • Како да најдете низа со VBA во Excel (8 примери)
  • VBA Најдете го последниот ред во Excel (5 начини)

Метод-5: Проверка на одредена подниза во Низа во опсег на податоци

Да претпоставиме дека сакате да напишете Поминете или Не успеав да одговарате на имињата на учениците во зависност од колоната Резултати каде што Поминете или Неуспешно е напишано во заграда. За да ја пронајдете оваа подниза во колоната Резултати и да ја запишете во колоната Поминете или не успеавте следете го овој метод.

Чекор-01 :

➤Следете го Чекор-01 од Метод-1

6968

Овде, опсегот на ќелиите е C5:C10 што е колона Резултати

InStr(cell.value, „Pass“) > 0 е условот кога бројот е поголем од нула (кога ќелијата содржи „Поминете“ )  тогаш следната линија ќе продолжи и ќе го даде излезот во соседната ќелија како Положен .

Ако условот стане неточен значи дека ќелијата не содржи „Поминете“ тогаш линијата под Else ќе се изврши и ќе ја даде излезната вредност во соседната ќелија како Неуспешна .

Оваа јамка ќе продолжи за секоја ќелија.

➤Притиснете F5

Резултат :

Потоа, ќе ги добиете следните излези во Поминете или не колона.

Метод-6: Проверка на одредена подниза во низа и извлекување податоци

Ќе го покажам начинот како да ги најдам учениците именувани Мајкл во колоната Име на студент и извадете ги нивните соодветни податоци користејќи VBA во овој метод.

Чекор-01 :

➤Следете го Чекор-01 од Метод-1

8093

Овде, користев B100 како Опсег на активни листови но можете да користите кој било опсег според вашата употреба.

InStr(1, Range("B" & i), "Michael") > 0 е услов за проверка дали ќелијата во колоната B содржи Michael

Range("E" & icount & ":G" & icount) е опсегот каде што ги сакате вашите излезни податоци и Range("B" & i & ":D" & i).value ќе ги даде вредностите од колоните B до D .

➤Притиснете F5

Резултат :

Потоа, ќе ги добиете следните извлечени податоци за учениците со името Мајкл .

Метод-7: Пребарување подниза за Word

Ако сакате да ја пронајдете поднизата како збор, тогаш fol низок овој метод.

Чекор-01 :

➤Следете го Чекор-01 од Метод-1

2666

Ќе провери дали низата содржи е и потоа ќе се даде нејзината позиција

➤Притиснете F5

Резултат :

Потоа, ќе го добиете следново поле за пораки кое го покажува зборот пронајден во позиција:6 (позицијата на е ).

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

➤Впишете го следниов код

3042

➤Притиснете F5

Резултат :

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

Метод-8: Користење на функцијата Instr и LEFT

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

Чекор-01 :

➤Следете Чекор-01 од Метод-1

5594

j = InStr(txt, "is") е позицијата на поднизата е и Left(txt, j - 1) ќе ги извлече поднизите пред е .

➤Притиснете F5

Резултат :

После тоа, ќе го добиете следново поле за пораки кое покажува Тука (подстрингот пред е ).

Метод-9: Задебелување Одредена подниза во низа

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

Чекор-01 :

➤Следете го Чекор-01 од Методот- 1

2158

txt = InStr(1, Cell, "(") ќе ја врати позицијата на првата заграда и Cell.Characters(1, txt - 1).Font.Bold ќе ја направи поднизата пред првата заграда Задебелена .

Чекор-02 :

➤Изберете ја колоната Резултати

➤Оди до Програмер Tab>> макроа Опција

Потоа, макроЌе се појави волшебникот.

➤Изберете Boldingsubstring (кодното име VBA) и потоа Изврши .

Резултат :

Потоа, оценките во Резултатот Колоната ќе бидат задебелени.

Дел за вежбање

За вежбање сами дадовме дел Вежбање како подолу во листот со име Практик . Ве молиме направете го тоа сами.

Заклучок

Во оваа статија, се обидов да ги опфатам најлесните начини за наоѓање подниза користејќи VBA во Excel ефективно. Се надевам дека ќе ви биде корисно. Ако имате какви било предлози или прашања, слободно споделете ги со нас.

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