Kako koristiti funkciju Find u VBA (6 primjera)

  • Podijeli Ovo
Hugh West

Jedna od najvažnijih i najčešće korištenih funkcija koje koristimo u Visual Basic aplikaciji (VBA) je funkcija Find. U ovom članku ću vam pokazati kako možete koristiti FIND funkciju u Excelu s odgovarajućim primjerima i ilustracijama.

Preuzmite Vježbenicu

Pronađi funkciju u VBA u Excel.xlsm

6 brzih primjera za korištenje funkcije FIND u VBA

Ovdje smo dobio skup podataka s Nazivima knjiga, autorima i Cijenama nekih knjiga knjižare pod nazivom Martin Bookstore.

Danas naš cilj je vidjeti različite vrste korištenja Pronađi funkcije od VBA iz ovog skupa podataka.

1. Koristite funkciju Pronađi u VBA bez parametara

Možete koristiti Pronađi funkciju od VBA bez parametara.

Onda je će tražiti određenu vrijednost unutar raspona ćelija i vratiti prvo podudaranje koje pronađe.

Potražimo ime “P. B. Shelly” u koloni Autor ( C4:C13 ).

Red sa Pronađi funkciju će biti:

Set cell = Range("C4:C17").Find("P. B. Shelly")

Komplet VBA kod će biti:

VBA kod:

4773

Izlaz:

Proizvodi Makro pod nazivom Pronađi . Ako pokrenete makro, vratit će $C$6 , prvu adresu ćelije s imenom P. B. Shelly .

Pročitajte više: Pronađite unutar raspona sa VBA uExcel: Uključujući točna i djelomična podudaranja

2. Primijenite funkciju Find u VBA sa parametrom After (da biste započeli pretraživanje iz određene ćelije)

Možete koristiti parametar After sa Find funkcijom u VBA . Zatim će početi tražiti vrijednost ispod ćelije unutar raspona.

Na primjer, počnimo tražiti ime “P. B. Shelly” od ispod ćelije C6 .

Linija koda će biti:

Set cell = Range("C4:C13").Find("P. B. Shelly", After:=Range("C6"))

A kompletan VBA kod će biti:

VBA kod:

7799

Izlaz:

Vratit će $C$13 jer počinje tražiti od ispod ćelije C6 , to je iz ćelije C7 . Tako dobija P. B. Shelly u ćeliji C13 prvo.

Pročitajte više: Kako pronaći string u Ćelija koja koristi VBA u Excel

3. Pokrenite funkciju Find u VBA sa premotavanjem oko parametra After (da biste tražili vrijednost na kružni način)

Parametar After sa Find funkcijom traži vrijednost na kružni način

To jest, počinje pretraživanje ispod ćelije unutar raspona, završava pretraživanje u rasponu, a zatim ponovo počinje od vrha raspona.

Na primjer, počnimo pretraživati ​​ime “John Keats” od ispod ćelije C8 koristeći parametar Nakon .

Linija kod će biti:

Set cell = Range("C4:C13").Find("John Keats", After:=Range("C8"))

Ikompletan VBA kod bit će:

VBA kod:

8898

Izlaz:

Vratit će $C$7 jer počinje tražiti od ispod ćelije C8 , to je od ćelija C9 .

Ne nalazi ništa do ćelije C13 , tako da ponovo počinje od ćelije C4 i pronalazi jednu u ćeliji C7 .

Slična čitanja:

  • Kako pronaći niz sa VBA u Excelu (8 primjera)
  • Pronađi tačno podudaranje koristeći VBA u Excelu (5 načina)
  • Kako pronaći i zamijeniti koristeći VBA (11 Načini)

4. Koristite funkciju Find u VBA s parametrom LookAt (za točno ili djelomično podudaranje)

Možete koristiti Find funkciju u VBA sa LookAt parametar.

Koristite LookAt = xlWhole za Exact match, i LookAt=xlPart za Partial podudaranje.

Na primjer, hajde da pokušamo saznati postoji li knjiga s imenom “Ode” u koloni Naziv knjige ( B4:B13 ).

Ako koristimo xlWhole u redu koda:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlWhole)

Izlaz će pokazati grešku jer neće pronaći nijedno točno podudaranje.

Ali ako koristite:

Set cell = Range("B4:B13").Find("Ode", LookAt:=xlPart)

Onda će vratiti $B$9 , jer u ćeliji postoji knjiga s imenom “Ode” B7 , Oda slavuju.

Dakle kompletan kod za djelimično utakmicuje:

VBA kod:

4739

5. Upravljajte funkcijom Find u VBA sa SearchDirection parametrom (da biste odredili smjer pretraživanja)

Možete koristiti i Find funkciju u VBA sa SearchDirection parametar.

Koristite SearchDirection = xlNext za pretraživanje od Od vrha do dna .

I SearchDirection = xlPrevious za pretraživanje od od dna ka vrhu .

Na primjer, pokušajmo pronaći autora Elif Shafak u koloni Autor ( C4:C13 ).

Ako koristimo xlNext u redu koda:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlNext)

Onda će vratiti $C$5 .

Ali ako koristite:

Set cell = Range("C4:C13").Find("Elif Shafak", SearchDirection:=xlPrevious)

Onda će vratiti $C$11 .

Dakle, kompletan kod za pretraživanje od odozdo prema gore je:

VBA kod:

1200

6. Pronađi funkciju u VBA s parametrom MatchCase (za podudaranje osjetljivo na velika i mala slova)

Konačno, možete koristiti Find funkciju sa parametrom MatchCase .

Koristite MatchCase = True za match-sensitive match , i MatchCase=False za podudaranje bez obzira na velika i mala slova.

Na primjer, pokušajmo pronaći knjigu “majka” u koloni Naziv knjige ( B4:B13 ).

Ako koristimo True u redu koda:

Set cell = Range("B4:B13").Find("mother", MatchCase:=True)

Izlaz će pokazati grešku jer neće t naći bilo kojipodudaranje.

Ali ako koristite:

Set cell = Range("B4:B13").Find("mother", MatchCase:=False)

Onda će vratiti $ B$9 jer postoji knjiga pod nazivom “Majka” u ćeliji B8 .

Dakle, kompletan kod za podudaranje velika i mala slova je:

VBA kod:

5938

Zaključak

Koristeći ove metode, možete koristiti funkciju Find u aplikaciji Visual Basic. Imate bilo kakvih pitanja? Slobodno nas pitajte.

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.