Funkcija FIND u VBA: Kako je koristiti?

želite naučiti kako koristiti FIND funkcija u VBA🇧🇷 Onda ste na pravom mjestu!

Tko ne poznaje opciju PRETRAŽIVANJE u Excelu? Ako ste neko vrijeme radili s Excelom, vjerojatno ste upotrijebili funkciju PRETRAŽIVANJE ili popularnu tipku prečaca Ctrl + L da pronađete riječ ili dio sadržaja koji želite pretraživati ​​na cijelom radnom listu. kao i cijela radna bilježnica.

Također, u VBA imamo funkciju koja se zove FIND koja nam može pomoći pronaći vrijednost koju tražimo.

Slijedite detalje u nastavku kako biste saznali više o ovoj značajci kroz praktične primjere.

Kako funkcija FIND radi u VBA?

Funkcija Excel VBA FIND traži određenu vrijednost unutar određenog raspona. Traži prvo pojavljivanje te vrijednosti i ako se pronađe, funkcija vraća ćeliju koja je sadrži. Međutim, ako se ne pronađe podudaranje, funkcija ne vraća ništa. Funkcija VBA FIND može vratiti točno ili djelomično podudaranje.

Na primjer, sljedeći kod traži tekst "San Pablo»u intervalu A1: A10 uRadni list1🇧🇷

S listovima ("Sheet1"). Raspon ("A1: A10")
Postavite Rng = .Find(What:="São Paulo")

Svrha korištenja funkcije FIND u VBA je pronaći željenu vrijednost u zadanom skupu podataka. Pomoću VBA koda možete automatizirati zadatak pronalaženja vrijednosti u Excelu.

Sintaksa funkcije VBA FIND

Sintaksa funkcije VBA FIND deklarirana je na sljedeći način:

izraz.Find(Što, Nakon, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

gdje je:

izraz: je objekt raspona, koji prethodi funkciji FIND u VBA kodu. Raspon pretraživanja može biti jedan ili više redaka, stupaca ili cijela proračunska tablica. Funkcija VBA FIND prihvaća sljedeće argumente:

  • Što: Ovo je vrijednost koju treba tražiti. Može biti numerički, tekstualni ili bilo koji drugi Excel tip podataka. Ovaj argument je isti kao opcija Pronađi za "pronaći i zamijeniti” iz Excela.
  • tada je: Označava ćeliju od koje će započeti pretraživanje. Unosi se kao referenca jedne ćelije. Ako je ovaj argument izostavljen, pretraživanje počinje nakon ćelije u gornjem lijevom kutu navedenog raspona pretraživanja.
  • Pogledaj u: Ovo je mjesto (ili podaci) gdje treba tražiti vrijednost. To može biti komentar (xlComments), formula (xlFormulas) ili vrijednost (xlValues). Zadana vrijednost za ovaj argument je xlFormulas. Također, ovaj argument je isti kao opcija Pronađi za "pronaći i zamijeniti” iz Excela.
  • Izgled: Ovaj argument odlučuje hoće li se podudarati cijeli sadržaj ćelije (točno podudaranje) ili dio sadržaja ćelije (djelomično podudaranje). Konstante su xlWhole i xlPart za točna i djelomična podudaranja. Zadana vrijednost za ovaj argument je xlPart.
  • Redoslijed pretraživanja: Ovaj argument predlaže redoslijed pretraživanja. Možete odrediti hoće li pretraživanje biti u redovima (xlByRows) ili stupcima (xlByColumns). Zadana vrijednost za ovaj argument je xlByRows. Također, ovaj argument je isti kao opcija Pronađi za "pronaći i zamijeniti” iz Excela.
  • Traži adresu: Označava adresu na kojoj će se izvršiti pretraga. Možete pretraživati ​​dolje ili do sljedeće ćelije pomoću konstante xlNext. Alternativno, možete pretraživati ​​unatrag (gore) ili u prethodnoj ćeliji s konstantom xlPrevious. Zadana vrijednost za ovaj argument je xlNext.
  • Kutija šibica: Ovaj argument odlučuje hoće li pretraživanje biti osjetljivo na velika i mala slova. Ako je pretraživanje osjetljivo na velika i mala slova, ovaj argument je naveden kao istinit (TRUE), inače je netočan (FALSE). Zadana vrijednost za ovaj argument je False.
  • MatchByte: Ovaj argument treba koristiti ako je netko instalirao ili odabrao dvobajtnu jezičnu podršku. Mora se navesti kao istinito ako dvobajtni znakovi odgovaraju dvobajtnim znakovima. Trebalo bi se navesti kao lažno ako se dvobajtni znakovi žele podudarati sa svojim jednobajtnim ekvivalentima.
  • format pretraživanja: Označava treba li vrijednost za pretraživanje biti u određenom formatu (kao što je podebljano ili kurziv) ili ne. Ako vrijednost traženja mora slijediti tehniku ​​oblikovanja, ovaj argument je naveden kao istinit, inače je netočan. Zadana vrijednost ovog argumenta je laž (FALSE).

samo argument što potrebno. Ostali argumenti nisu obavezni.

Funkcija FIND vraća jedan od sljedećih rezultata:

  • Ako se pronađe podudaranje, funkcija vraća prvu ćeliju u kojoj je pronađena vrijednost.
  • Ako se ne pronađe podudaranje, funkcija ne vraća ništa. To je zato što je funkcijski objekt postavljen na ništa.

Alternativno, ako nije pronađeno podudaranje, prilagođena poruka navedena putem funkcija okvira za poruke može se vratiti (pogledajte primjere koda u nastavku).

Napomena 1: Pretraživanje počinje nakon ćelije navedene u argumentu. Después i nastavlja se do posljednje ćelije u rasponu pretraživanja. Ako se vrijednost ne pronađe do ove posljednje ćelije, pretraživanje ponovno počinje od prve ćelije u rasponu pretraživanja do ćelije navedene u argumentu. Después🇧🇷

Dakle, ćelija navedena u argumentu Después traži se na kraju procesa pretraživanja. Za više detalja o korištenju argumenta Despuéspogledajte drugi primjer u ovom članku.

Napomena 2: Svaki put kada se koristi funkcija VBA FIND, Pogledaj u🇧🇷 Pogledaj🇧🇷 red pretraživanja y MatchByte Stoga, ako su ove vrijednosti izostavljene sljedeći put kada se funkcija koristi, Excel će koristiti prethodno spremljene vrijednosti. Stoga se preporuča eksplicitno deklarirati navedene argumente kad god se pretraživanje izvodi pomoću funkcije VBA FIND.

Kako koristiti funkciju FIND u programu Excel VBA?

Kako biste razumjeli upotrebu funkcije FIND u VBA-u, u nastavku smo izdvojili neke praktične primjere.

Primjer 1: Odabir ćelije s prvim pojavljivanjem vrijednosti pretraživanja

U ovom prvom primjeru, pretpostavimo da imate popis koji sadrži neka imena kao što je prikazano na slici ispod, a želite pregledati i odabrati ćeliju koja sadrži naziv. Pedro🇧🇷

Zatim slijedite ove korake:

1. Pristupite vodiču razvijač 🇧🇷 vizualni osnovni🇧🇷 (Ako u svom Excelu nemate omogućenu karticu Razvojni programer, provjerite ovdje korak po korak).

vodič za programere

dva. Na VBA zaslonu odaberite željeni radni list iz izbornika s lijeve strane. U ovom primjeru odabrat ćemo Radni list1 koji je radni list koji sadrži popis imena.

3. Nakon odabira željenog radnog lista, u područje s desne strane unesite kod ispod:

Odaberite ćeliju s prvim pojavljivanjem tražene vrijednosti

SubLocateName()
Raspon("A1:A10").Pronađi(Što:="Peter").Odaberi
End Sub
  • Primijetite u gornjem kodu da smo spomenuli raspon koji tražimo (A1: A10🇧🇷
  • Nakon što navedete raspon, stavite točku (.) i upišite PRONAĆI🇧🇷
  • Naš prvi argument je ono što tražimo. Da bismo istaknuli argument, možemo proslijediti argument što:=ovo će biti korisno za identifikaciju na koji parametar mislimo.
  • Završni dio je nakon pronalaska riječi što želimo učiniti. Moramo odabrati riječ, pa proslijediti argument kao .Odaberi🇧🇷
  • Zatim pokrenite ovaj kod pomoću ključa F5 ili ručno kao što je prikazano na slici ispod za odabir prve ćelije koja sadrži naziv Pedro🇧🇷

smjestiti u VBA

Primjer 2: Odaberite ćeliju s drugom pojavom vrijednosti pretraživanja

U ovom drugom primjeru imajte na umu da sljedeća slika sadrži neka imena u rasponu A1:A10. Imajte na umu da naziv "Pedro” pojavljuje se dva puta u stupcu A.

Odaberite ćeliju s drugom pojavom

U ovom slučaju želimo pretražiti i odabrati druga pojava imena "Peter" u stupcu A (to jest, ćelija A7). Da bismo to učinili, koristit ćemo sljedeći kod:

PRONAĐITE drugo pojavljivanje VBA

SubLocateName()
Raspon("A1:A10").Pronađi(Što:="Peter", Nakon:=Raspon("A2")).Odaberi
End Sub

Primijetite u gornjem kodu da pretraživanje počinje nakon ćelije A2 i nastavlja se do posljednje ćelije u stupcu A. To je zato što je raspon pretraživanja naveden kao stupac A (A1:A10).

Dakle, budući da pretraživanje počinje u ćeliji A3, vrijednost "Pedro” je u ćeliji A7 daje "Proračunska tablica2🇧🇷 Stoga će ćelija A7 biti odabrana funkcijom FIND prilikom izvršavanja koda.

Ako naziv «Pedro” nije pronađen u ćeliji A3 sve do posljednje ćelije u stupcu A, pretraga bi ponovno započela u ćeliji A1 i ovaj put završila u ćeliji A2. Stoga, ćelija navedena u argumentu "Después” se traži odmah na kraju procesa pretraživanja.

Primjer 3: Pronađite tekst navodeći neke od njegovih znakova

Za traženje teksta navodeći samo njegov dio, unesite argument Pogledaj kao xlPart ili izostaviti ovaj argument. Prema zadanim postavkama, funkcija FIND povezuje znakove u vrijednosti pretraživanja s cijelim nizom. Zatim vraća ćeliju koja sadrži cijeli niz.

Pogledajte primjer u nastavku:

SubLocateName()
Raspon("A1:A10").Pronađi(Što:="Ped", LookAt:=xlPart).Odaberi
End Sub

Ovaj kod traži znakove "Ped” u rasponu A1:A25 od „Sheet3”. Vraća se ćelija koja sadrži vrijednost, koja se imenuje djelomično dopisivanje🇧🇷 Dakle, neovisno o tome jesu li znakovi vrijednosti pretraživanja postavljeni na početak, sredinu ili kraj niza, Excel VBA vraća podudaranje.

promatranje: konstanta xlPart može se izostaviti iz koda jer je to zadana vrijednost funkcije FIND. Ali ako je ovaj argument naveden, provjerite da nije u dvostrukim navodnicima.

Primjer 4: Pronalaženje teksta unutar komentara

Također možete koristiti funkciju VBA FIND za pronalaženje teksta unutar komentara ćelije u Excelu.

Za bolje razumijevanje, pogledajte primjer u nastavku gdje imamo radni list koji sadrži tri ćelije s komentarima (označene crvenim trokutićima). Iz ovoga želimo pronaći tekst "plaćena provizija” koji se nalazi unutar jednog od komentara. U ovom slučaju koristit ćemo sljedeći kod:

SubLocateComment()
Raspon("A1:B10").Pronađi(Što:="Provizija plaća", LookIn:=xlKomentari).Odaberi
End Sub

Pronađite tekst unutar komentara

Kao rezultat toga, Excel će odabrati samo ćeliju koja sadrži komentar čiji je tekst naveden u našem kodu.

Primjer 5: Rješavanje pogreške u funkciji FIND u VBA

U slučaju da tekst koji tražimo nije unutar zadanog raspona, VBA će vratiti pogrešku kao što je prikazano u nastavku:

91 greška

Kako bismo izbjegli ovu pogrešku, možemo upotrijebiti kôd kao što je prikazano u nastavku:

SubLocateName()
Zatamnjeni rezultat kao varijanta

Na Error Resume Next
Raspon("A1:A10").Pronađi(Što:="Cristina").Odaberi
Pri pogrešci Idi na 0

Rezultat = ActiveCell.Value

Ako je rezultat = "" Zatim
MsgBox "Vrijednost koju tražite nije dostupna u ponuđenom rasponu!"
Izlaz iz pod
Kraj Ako je

End Sub

Primijetite u gornjem kodu da ako VBA pronađe vrijednost, prikazat će pronađenu vrijednost ili će prikazati poruku kao "Vrijednost koju tražite nije dostupna u danom rasponu🇧🇷

Više savjeta o tome kako popraviti VBA pogreške potražite u članku: Excel VBA pogreške: sve što trebate znati!

Detalji za pamćenje

  • Funkcija FIND dio je svojstva RANGE i trebate koristiti FIND nakon odabira samo raspona.
  • U funkciji FIND, prvi argument (što), plus sve ostalo nije obavezno.
  • Ako pronađete vrijednost nakon određene ćelije, možete spomenuti ćeliju u parametru Después sintakse pretraživanja.

Ovdje preuzmite proračunsku tablicu koji sadrži primjere predstavljene u ovom vodiču.

Također pogledajte sljedeće savjete za Excel:

Dakle, što mislite o funkciji FIND u VBA? Ako imate pitanja, ostavite svoj komentar ispod. Također pogledajte više savjeta za Excel i VBA na našoj web stranici!

Tommy Banks
Bit će nam drago čuti vaše mišljenje

ostavite odgovor

TechnoBreak | Ponude i recenzije
logo
Omogući registraciju u postavkama - općenito
košarica