Kako pronaći string sa VBA u Excelu (8 primjera)

  • Podijeli Ovo
Hugh West

Implementacija VBA je najefikasnija, najbrža i najsigurnija metoda za pokretanje bilo koje operacije u Excelu. U ovom članku ćemo vam pokazati kako pronaći određene nizove u drugom datom nizu koristeći VBA u Excelu.

Preuzmite predložak za vježbanje

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

VBA za pronalaženje u String.xlsm

InStr funkcija

Microsoft Excel ima ugrađenu funkciju zvanu InStr Function za pronalaženje položaja određenih stringova u datom nizu.

Generička sintaksa:

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

Ovdje,

Argumenti Obavezno/ Opciono Definicija
početak Opciono Početna pozicija pretrage.
  • Podrazumevano, funkcija InStr izračunava poziciju karaktera računajući od 1, a ne od početne pozicije. Dakle, možete ostaviti ovo prazno ako želite.
string1 Obavezno Niz za pretraživanje, primarni niz.
string2 Obavezno String za traženje u primarnom nizu .
uporedi Opciono Funkcija InStr je prema zadanim postavkama osjetljiva na velika i mala slova. Ali ako želite da pokrenete InStr neosjetljiv na mala i mala slova, onda možete proslijediti argument ovdje da izvršite određeno poređenje. Ovaj argument može biti sljedećivrijednosti,
  • vbBinaryCompare -> izvodi binarno poređenje, 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đene pozicije niza u datom nizu pomoću VBA

Hajde da vidimo nekoliko jednostavnih primjera za dobivanje položaja određenih nizova u datom nizu koristeći VBA .

1. VBA za pronalaženje pozicije teksta u nizu

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

  • Pritisnite Alt + F11 na tastaturi ili idite na karticu Razvojnik -> Visual Basic da otvorite Visual Basic Editor .

  • U skočnom prozoru koda, sa trake menija , kliknite Umetni -> Modul .

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

Vaš kod je sada spreman za pokretanje.

  • Pritisnite F5 na tastaturi ili na traci menija odaberite Pokreni -> Pokrenite Sub/UserForm . Također možete jednostavno kliknuti na malu ikonu Play u traci podmenija da pokrenete makro.

Vidjet ćete da iskačuća poruka će vam dati brojdeklariranje pozicije teksta koji želite provjeriti.

Objašnjenje:

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

2. VBA za pronalaženje teksta sa određene pozicije u nizu

Sada hajde da saznamo šta bi se desilo da želimo da dobijemo poziciju sa određenog broja.

  • Na isti način kao prije toga otvorite Visual Basic Editor sa kartice Razvojnik i Ubaci Modul u prozor koda.
  • U u prozoru koda, napišite jednostavan InStr program prikazan gore i proslijedite vrijednost u početni argument prema poziciji s koje želite računati svoj tekst.
2424

  • Sljedeće, Pokreni kod.

Vidjet ćete da će iskačuća poruka 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 u fazi 1) da je tekst “ izbor ” počeo sa pozicije 16 , pa smo ubacili dva “ choice ” u primarnom nizu i postavite 17 kao naš1. parametar za preskakanje prvog “ izbor ”. Dakle, Pokrenili smo gornji makro i on nam je pokazao broj pozicije 27 što je tačno broj pozicije drugog izbor ” u datom nizu.

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

Od uvođenja funkcije InStr već znate da je po defaultu funkcija InStr je osjetljiv na velika i mala slova. Hajde da to otkrijemo na primjeru.

Pogledajte sljedeći VBA kod, gdje smo htjeli pronaći poziciju riječi “ Izbor ” sa velikim “C” u nizu “ Sreća je izbor ” gdje je izbor napisan sa malim “c” .

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

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

  • Da biste funkciju InStr učinili neosjetljivom na velika i mala slova , postavite argument usporedbe na vbTextCompare (pogledajte dolje).
7982

  • Pokreni kod.

Dobit ćeš 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 poziciju s lijeve strane niza. Ali šta ako želite da pronađete poziciju teksta sa desne strane stringa.

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

Pogledajte sljedeće primjere da biste razumjeli razliku.

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

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

  • Ali ako pokrenemo isti kod sa InStrRev funkcijom, onda,

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

Slična čitanja:

  • FindNext koristeći VBA u Excelu (2 primjera)
  • Kako pronaći i zamijeniti koristeći VBA (11 načina)
  • Pronađi tačno podudaranje koristeći VBA u Excelu (5 načina)

5. VBA za pronalaženje pozicije znaka u nizu

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

  • Kopirajte sljedeći kod u vaš VBA kodni prozor
4602

  • I Pokreni makro.

Prvi “ e ” u našem datom nizu je nabroj 7 pozicija.

6. VBA za pronalaženje podniza u nizu

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

Da bismo to dobili, imamo da pokrenete IF naredbu u našem kodu.

  • Na isti način kao i prije, otvorite Visual Basic Editor sa kartice Developer i Umetnite a Module u prozor koda.
  • U prozoru koda kopirajte sljedeći kod i zalijepite ga.
9180

Vaš kod je sada spreman za pokretanje.

  • Pokreni makro.

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

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

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

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

  • Ispod je kod za dobivanje rezultata o kojem smo gore govorili,
1611

  • Pokreni kod i rezultat je prikazan ispod

  • Možete modificirati makro prema vašim potrebama. Na primjer, ako želiteda pronađete “ Prof. ” u bilo kojoj ćeliji niza, i dobijete “ Professor ” kao povratak, a zatim jednostavno proslijedite “ Prof. ” kao vrijednost umjesto “ Dr .” u 4. redu makroa i “ Profesor ” umjesto “ Doktor ” u 5. redu makroa i definirajte prema tome broj raspona ćelija.

8. VBA za pronalaženje niza u ćeliji

Možete i pretražiti određeni tekst u jednoj ćeliji niza i vratiti određeni niz.

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

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

  • Možete modificirati makro prema vašim potrebama. Na primjer, ako želite pronaći “ Prof. ” u bilo kojoj ćeliji niza, i dobiti “ Profesor ” kao povratak, zatim jednostavno proslijedite “ Prof. ” kao vrijednost umjesto “ Dr .” u 2. redu makroa i “ Profesor ” umjesto “ Doktor ” u 3. redu makroa i definirajte referentni broj ćelije prema tome.

Zaključak

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

Hugh West je vrlo iskusan Excel trener i analitičar s više od 10 godina iskustva u industriji. Diplomirao je računovodstvo i finansije i magistrirao poslovnu administraciju. Hugh ima strast prema podučavanju i razvio je jedinstven pristup podučavanju koji je lako pratiti i razumjeti. Njegovo stručno znanje o Excel-u pomoglo je hiljadama studenata i profesionalaca širom svijeta da poboljšaju svoje vještine i napreduju u karijeri. Kroz svoj blog, Hugh dijeli svoje znanje sa svijetom, nudeći besplatne Excel tutorijale i online obuku kako bi pomogli pojedincima i preduzećima da ostvare svoj puni potencijal.