Kako pronaći niz pomoću VBA u Excelu (8 primjera)

  • Podijeli Ovo
Hugh West

Implementacija VBA je najučinkovitija, najbrža i najsigurnija metoda za pokretanje bilo koje operacije u Excelu. U ovom članku pokazat ćemo vam kako pronaći određene nizove u drugom zadanom nizu pomoću VBA u Excelu.

Preuzmite predložak za vježbu

Vi ovdje možete preuzeti besplatni Excel predložak za vježbanje.

VBA za pronalaženje u String.xlsm

Funkcija InStr

Microsoft Excel ima ugrađenu funkciju koja se zove funkcija InStr za pronalaženje položaja određenih nizova u danom nizu.

Generička sintaksa:

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

Ovdje,

Argumenti Obavezno/ Izborno Definicija
početak Neobavezno Početni položaj pretraživanja.
  • Prema zadanim postavkama, funkcija InStr izračunava poziciju znaka brojeći od 1, a ne od početne pozicije. Dakle, možete ostaviti ovo prazno ako želite.
string1 Obavezno Niz u kojem se traži, primarni niz.
niz2 Obavezno Niz koji se traži u primarnom nizu .
usporedi Izborno Funkcija InStr prema zadanim je postavkama osjetljiva na velika i mala slova. Ali ako želite pokrenuti InStr bez obzira na velika i mala slova, tada možete proslijediti argument ovdje da izvršite određenu usporedbu. Ovaj argument može biti sljedećivrijednosti,
  • vbBinaryCompare -> izvodi binarnu usporedbu, vraća vrijednost 0
  • vbTextCompare -> izvodi usporedbu teksta, vraća vrijednost 1
  • vbDatabaseCompare -> izvodi usporedbu baze podataka, vraća vrijednost 2

Prema zadanim postavkama, InStr uzima vbBinaryCompare kao argument usporedbe.

8 jednostavnih primjera za pronalaženje određenog položaja niza u zadanom nizu pomoću VBA

Pogledajmo nekoliko jednostavnih primjera za dobivanje položaja određenih nizova u zadanom nizu pomoću VBA .

1. VBA za pronalaženje položaja teksta u nizu

Ispod je primjer InStr za pronalaženje položaj teksta u nizu.

  • Pritisnite Alt + F11 na tipkovnici ili idite na karticu Razvojni programer -> Visual Basic za otvaranje Visual Basic Editor .

  • U skočnom prozoru koda, iz trake izbornika , kliknite Umetni -> Modul .

  • Sada u prozoru koda napišite jednostavan InStr program unutar VBA Sub Procedura (vidi dolje).
8687

Vaš kod je sada spreman za izvođenje.

  • Pritisnite F5 na tipkovnici ili na traci izbornika odaberite Pokreni -> Pokrenite Sub/UserForm . Također možete samo kliknuti na malu ikonu Play u traci podizbornika da biste pokrenuli makro.

Vidjet ćete da skočni okvir s porukom dat će vam brojdeklarirajući položaj teksta koji želite provjeriti.

Objašnjenje:

Naš primarni niz, “ Sreća je izbor ” je rečenica od 21 slova (s razmacima) i htjeli smo pronaći poziciju teksta “ izbor ” u tom nizu. Tekst “ izbor ” počinje od 16. pozicije primarnog niza, stoga smo dobili broj 16 kao naš izlaz u okviru s porukom.

2. VBA za pronalaženje teksta s određenog položaja u nizu

Sada saznajmo što bi se dogodilo da želimo dobiti položaj s određenog broja.

  • Na isti način kao prije toga otvorite Visual Basic Editor s kartice Developer i Umetnite Modul u prozor koda.
  • U prozor koda, napišite jednostavan InStr program prikazan gore i proslijedite vrijednost u početnom argumentu prema poziciji s koje želite brojati svoj tekst.
3857

  • Zatim, pokrenite kôd.

Vidjet ćete da će skočni okvir s porukom dati vam broj koji deklarira poziciju teksta počevši od određene pozicije koju želite provjeriti.

Objašnjenje:

Kao što smo već znali (iz rasprave faze 1) da tekst “ izbor ” počinje s pozicije 16 , pa smo umetnuli dva “ choice ” u primarnom nizu i postavite 17 kao naš1. parametar za preskakanje prvog “ izbor ”. Dakle, Pokrenuli smo gornju makronaredbu i ona nam je pokazala broj pozicije 27 koji je točno broj pozicije drugog izbora ” u danom nizu.

3. VBA za pronalaženje teksta s funkcijom InStr koja ne razlikuje velika i mala slova u nizu

Od uvoda u funkciju InStr već znate da je prema zadanim postavkama funkcija InStr je osjetljiv na velika i mala slova. Otkrijmo to na primjeru.

Pogledajte sljedeći VBA kod, gdje smo htjeli pronaći položaj riječi “ Izbor ” s velikim slovom “C” u nizu “ Sreća je izbor ” gdje se izbor piše s malim slovom “c” .

  • Pokrenite kod i pronađite 0 kao naš izlaz.

To je zato što funkcija InStr različito tretira veliko “C” i malo “c” . Tako je tražio riječ “ Izbor ” u nizu i nije dobio nikakvo podudaranje, pa je vratio 0 .

  • Da bi funkcija InStr bila neosjetljiva na velika i mala slova , postavite argument usporedbe na vbTextCompare (pogledajte dolje).
7935

  • Pokrenite kod.

Dobit ćete poziciju teksta iz niza, bilo da je tekst napisan velikim ili malim slovima .

4. VBA za pronalaženje teksta s desne strane niza

Do sada nam je funkcija InStr davala samo položaj s lijeve strane niza. Ali što ako želite pronaći položaj teksta s desne strane niza.

Funkcija InStrRev pretražuje s desne strane. Funkcija InStrRev radi vrlo slično funkciji InStr i pronaći će vam položaj teksta s desne strane niza.

Pogledajte sljedeće primjere da biste razumjeli razliku.

  • Ako pokrenemo sljedeći kod s funkcijom InStr tada,

daje nam poziciju ( 16 ) prvog teksta “ izbor ”.

  • Ali ako pokrenemo isti kod s funkcijom InStrRev tada,

ona nam daje poziciju ( 27 ) posljednjeg teksta “ izbor ”.

Slična čitanja:

  • Pronađi sljedeće pomoću VBA u Excelu (2 primjera)
  • Kako pronaći i zamijeniti pomoću VBA (11 načina)
  • Pronađite točno podudaranje pomoću VBA u Excelu (5 načina)

5. VBA za pronalaženje položaja znaka u nizu

Također možete pronaći položaj određenog znaka u nizu na isti način na koji ste pronašli tekst.

  • Kopirajte sljedeći kod u vaš VBA prozor koda
2264

  • I Pokrenite makro.

Prvi “ e ” u našem danom nizu je napoložaj broja 7 .

6. VBA za pronalaženje podniza u nizu

Ovdje ćemo naučiti kako pronaći sadrži li niz podniz ili ne.

Da bismo to dobili, imamo za pokretanje IF naredbe u našem kodu.

  • Na isti način kao prije, otvorite Visual Basic Editor s kartice Developer i Umetnite Modul u prozor koda.
  • U prozor koda kopirajte sljedeći kod i zalijepite ga.
5871

Vaš kod je sada spreman za izvođenje.

  • Pokreni makro.

Ako vaš niz sadrži podniz tada ćete dobiti podudaranje pronađeno , u suprotnom će vratiti nijedno podudaranje. U našem primjeru htjeli smo saznati sadrži li naš primarni niz “ Sreća je izbor ” riječ “ izbor ” ili ne. Kako to čini, dobivamo rezultat Pronađeno podudaranje .

7. VBA za pronalaženje niza u rasponu ćelija

Možete tražiti određeni tekst u nizu nizova ćelija i vratiti određeni niz.

Pogledajte sljedeći primjer gdje ćemo pronađite “ Dr. ” i kada postoji podudaranje, vratit će se “ Doktor ”.

  • Ispod je kôd za dobivanje rezultata o kojem je gore bilo riječi,
2352

  • Pokrenite kod i rezultat je prikazan u nastavku

  • Možete izmijeniti makro prema svojim potrebama. Na primjer, ako želitepronaći “ Profesor ” u bilo kojoj ćeliji niza i dobiti “ Profesor ” kao povratnu vrijednost, zatim jednostavno proslijedite “ Prof. ” kao vrijednost umjesto “ Dr .” u 4. retku makronaredbe i “ Profesor ” umjesto “ Doktor ” u 5. retku makronaredbe i definirajte odgovarajući broj raspona ćelija.

8. VBA za pronalaženje niza u ćeliji

Također možete tražiti određeni tekst u jednoj ćeliji niza i vratiti određeni niz.

  • Kopirajte sljedeći kod i zalijepite ga u prozor koda.
7069

Tražit će " Dr. ” u ćeliji B5 i ako pronađe podudaranje vraća “ Doktor ” u ćeliji C5 .

  • Možete izmijeniti makro prema svojim potrebama. Na primjer, ako želite pronaći “ Profesor ” u bilo kojoj ćeliji niza i dobiti “ Profesor ” kao rezultat, zatim jednostavno proslijedite “ Prof. ” kao vrijednost umjesto “ Dr .” u 2. retku makronaredbe i “ Profesor ” umjesto “ Doktor ” u 3. retku makronaredbe i definirajte odgovarajući referentni broj ćelije.

Zaključak

Ovaj vam je članak pokazao kako pronaći određene tekstove u nizu u Excelu pomoću VBA makronaredbe. Nadam se da vam je ovaj članak bio od velike koristi. Slobodno postavite sva pitanja u vezitemu.

Hugh West vrlo je iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i financije te magistrirao poslovno upravljanje. Hugh ima strast za podučavanjem i razvio je jedinstveni pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno poznavanje programa Excel pomoglo je tisućama studenata i profesionalaca diljem svijeta da poboljšaju svoje vještine i postignu uspjeh u karijeri. Putem svog bloga, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne vodiče za Excel i online obuku kako bi pomogao pojedincima i tvrtkama da dostignu svoj puni potencijal.