Funktsioon FIND VBA-s: kuidas seda kasutada?

tahan õppida kasutama FIND funktsioon VBA-s🇧🇷 Siis oled õiges kohas!

Kes ei tea Excelis valikut OTSING? Kui olete Exceliga mõnda aega töötanud, olete tõenäoliselt kasutanud funktsiooni OTSING või populaarset kiirklahvi Ctrl + L, et leida sõna või sisu, mida soovite kogu töölehel otsida. nagu kogu töövihik.

Lisaks on VBA-s funktsioon FIND, mis aitab meil leida otsitava väärtuse.

Selle funktsiooni kohta praktiliste näidete kaudu lisateabe saamiseks järgige allolevaid üksikasju.

Kuidas funktsioon FIND VBA-s töötab?

Exceli VBA FIND funktsioon otsib kindlat väärtust kindlas vahemikus. Otsib selle väärtuse esmakordset esinemist ja kui see leitakse, tagastab funktsioon seda sisaldava lahtri. Kui aga vastet ei leita, ei tagasta funktsioon midagi. Funktsioon VBA FIND võib tagastada täpse või osalise vaste.

Näiteks otsib järgmine kood teksti "Saint Paul» intervallis A1: A10 sisseTööleht1🇧🇷

Koos Sheetsiga ("Leht1"). Vahemik ("A1:A10")
Määra Rng = .Leia(mis:="São Paulo")

Funktsiooni FIND kasutamise eesmärk VBA-s on leida soovitud väärtus antud andmekogumist. VBA-koodi abil saate väärtuste leidmise Excelis automatiseerida.

Funktsiooni VBA FIND sĂĽntaks

Funktsiooni VBA FIND süntaks deklareeritakse järgmiselt:

expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchBayte, SearchFormat)

Kus:

väljend: on vahemiku objekt, mis eelneb VBA-koodis funktsioonile FIND. Otsinguvahemikuks võib olla üks või mitu rida, veergu või kogu arvutustabel. Funktsioon VBA FIND aktsepteerib järgmisi argumente:

  • Mis: See on väärtus, mida otsida. See võib olla numbriline, tekstiline või mis tahes muu Exceli andmetĂĽĂĽp. See argument on sama mis suvand Otsileida ja asendada” Excelist.
  • Pärast: Näitab lahtrit, millest otsing algab. See sisestatakse ĂĽhe lahtri viitena. Kui see argument välja jäetakse, algab otsing määratud otsinguvahemiku vasakus ĂĽlanurgas oleva lahtri järel.
  • Vaata sisse: See on koht (või andmed), kust väärtust tuleks otsida. See võib olla kommentaar (xlComments), valem (xlFormulas) või väärtus (xlValues). Selle argumendi vaikeväärtus on xlFormulas. Samuti on see argument sama mis suvand Otsileida ja asendada” Excelist.
  • Vaata: See argument otsustab, kas sobitada kogu lahtri sisu (täpne vaste) või osa lahtri sisust (osaline vaste). Täpse ja osalise vaste jaoks on konstandid vastavalt xlWhole ja xlPart. Selle argumendi vaikeväärtus on xlPart.
  • Otsi järjekorda: See argument viitab otsingujärjekorrale. Saate määrata, kas otsing toimub ridades (xlByRows) või veergudes (xlByColumns). Selle argumendi vaikeväärtus on xlByRows. Samuti on see argument sama mis suvand Otsileida ja asendada” Excelist.
  • Otsi aadressi: Näitab aadressi, kus otsing tehakse. Saate otsida alla või järgmisesse lahtrisse konstandiga xlNext. Teise võimalusena saate otsida tagasi (ĂĽles) või eelmises lahtris konstandiga xlPrevious. Selle argumendi vaikeväärtus on xlNext.
  • Tikutoos: See argument otsustab, kas otsing peaks olema tõstutundlik või mitte. Kui otsing on tõstutundlik, määratakse see argument tõeseks (TRUE), vastasel juhul on see väär (FALSE). Selle argumendi vaikeväärtus on False.
  • MatchByte: Seda argumenti tuleks kasutada juhul, kui keegi on installinud või valinud kahebaidise keeletoe. Peab olema määratud tõeseks, kui kahebaidised märgid peavad vastama kahebaidistele tähemärkidele. Tuleks määrata kui Väär, kui kahebaidised märgid tuleb sobitada nende ĂĽhebaidiliste ekvivalentidega.
  • otsinguvorming: Näitab, kas otsitav väärtus peaks olema kindlas vormingus (nt paksus või kaldkirjas) või mitte. Kui otsinguväärtus peab järgima vormindamistehnikat, määratakse see argument tõeseks, vastasel juhul vääraks. Selle argumendi vaikeväärtus on false (FALSE).

vaid argument Mis vajalik. Ülejäänud argumendid on valikulised.

Funktsioon FIND tagastab ühe järgmistest tulemustest:

  • Kui leitakse vaste, tagastab funktsioon esimese lahtri, kust väärtus leitakse.
  • Kui vastet ei leita, ei tagasta funktsioon midagi. Selle põhjuseks on asjaolu, et funktsiooniobjektiks on seatud mitte midagi.

Teise võimalusena, kui vastet ei leita, saab kohandatud sõnumi, mis on määratud kaudu sõnumikasti funktsioon saab tagastada (vt allpool koodinäiteid).

Märkus 1: Otsing algab pärast argumendis määratud lahtrit. Pärast ja jätkab otsinguvahemiku viimase lahtrini. Kui väärtust ei leita kuni viimase lahtrini, algab otsing uuesti otsinguvahemiku esimesest lahtrist argumendis määratud lahtrini. Pärast🇧🇷

Seetõttu argumendis määratud lahter Pärast seda otsitakse otsinguprotsessi lõpus. Lisateavet argumendi kasutamise kohta Pärastvaadake selle artikli teist näidet.

Märkus 2: Iga kord, kui kasutatakse funktsiooni VBA FIND, kuvatakse vaata sisse🇧🇷 Vaata🇧🇷 otsingu järjekord y MatchByte Kui need väärtused funktsiooni järgmisel kasutamisel välja jäetakse, kasutab Excel varem salvestatud väärtusi. Seetõttu on soovitatav esitatud argumendid selgesõnaliselt deklareerida alati, kui otsitakse funktsiooni VBA FIND abil.

Kuidas kasutada funktsiooni FIND Excel VBA-s?

Selleks, et mõistaksite funktsiooni FIND kasutamist VBA-s, oleme allpool eraldanud mõned praktilised näited.

Näide 1: lahtri valimine otsinguväärtuse esimese esinemissagedusega

Selles esimeses näites oletame, et teil on loend, mis sisaldab mõningaid nimesid, nagu on näidatud alloleval pildil, ja soovite sirvida ja valida nime sisaldava lahtri. Pedro🇧🇷

Sealt edasi toimige järgmiselt.

1. Juurdepääs juhendile Arendaja 🇧🇷 visuaalne põhi🇧🇷 (Kui teie Excelis pole vahekaarti Arendaja lubatud, kontrolli siit samm sammu haaval).

arendaja juhend

kaks. VBA ekraanil valige vasakpoolsest menüüst soovitud tööleht. Selles näites valime Tööleht1 mis on tööleht, mis sisaldab nimede loendit.

3. Pärast soovitud töölehe valimist sisestage parempoolsesse piirkonda allolev kood:

Valige lahter, kus otsitav väärtus esineb esimest korda

Sub LocateName()
Vahemik("A1:A10").Leia(Mis:="Peeter").Valige
End Sub
  • Pange tähele ĂĽlalolevas koodis, et mainisime vahemikku, mida otsime (A1: A10🇧🇷
  • Pärast vahemiku mainimist pange punkt (.) ja tippige LEIA🇧🇷
  • Meie esimene argument on see, mida me otsime. Argumendi esiletõstmiseks võime argumendi läbida mida:=see on kasulik tuvastamaks, millist parameetrit me silmas peame.
  • Viimane osa on pärast sõna leidmist, mida me tahame teha. Peame valima sõna, seega edastage argument kui Valige🇧🇷
  • Seejärel käivitage see kood klahvi abil F5 või käsitsi, nagu on näidatud alloleval pildil, et valida esimene nime sisaldav lahter Pedro🇧🇷

leidke VBA-s

Näide 2: valige lahter, kus otsinguväärtust esineb teist korda

Selles teises näites pange tähele, et järgmine pilt sisaldab mõningaid nimesid vahemikus A1:A10. Pange tähele, et nimi "Pedro” ilmub veerus A kaks korda.

Valige teise esinemisega lahter

Sel juhul tahame otsida ja valida teine ​​esinemine nime "Peeter" veerus A (st lahtris A7). Selleks kasutame järgmist koodi:

LEIA VBA teine ​​esinemine

Sub LocateName()
Vahemik("A1:A10").Leia(Mis:="Peeter", After:=Range("A2")).Valige
End Sub

Pange tähele ülalolevas koodis, et otsing algab pärast lahtrit A2 ja jätkub veeru A viimase lahtrini. Selle põhjuseks on asjaolu, et otsinguvahemikuks määrati veerg A (A1:A10).

Seega, kuna otsing algab lahtrist A3, on väärtus "Pedro” on kambris A7 annab"tabel2🇧🇷 Seetõttu valitakse koodi täitmisel funktsiooni FIND abil lahter A7.

Kui nimi «Pedro” ei leitud lahtrist A3 kuni veeru A viimase lahtrini, algab otsing uuesti lahtrist A1 ja lõpeb seekord lahtriga A2. Seetõttu on argumendis "Pärast” otsitakse kohe otsinguprotsessi lõpus.

Näide 3. Otsige teksti, määrates mõned selle märgid

Teksti otsimiseks, määrates ainult osa sellest, sisestage argument Vaata kui xlPart või jäta see argument vahele. Vaikimisi sobitab funktsioon FIND otsinguväärtuses olevad märgid kogu stringiga. Seejärel tagastab see lahtri, mis sisaldab kogu seda stringi.

Vaadake allolevat näidet:

Sub LocateName()
Vahemik("A1:A10").Leia(What:="Ped", LookAt:=xlPart).Valige
End Sub

See kood otsib märke "Ped” lehe „Sheet1” vahemikus A25:A3. Tagatakse väärtust sisaldav lahter, millele antakse nimi osaline kirjavahetus🇧🇷 Seega, olenemata sellest, kas otsinguväärtuse märgid on paigutatud stringi algusesse, keskele või lõppu, tagastab Excel VBA vaste.

Märkus: konstant xlPart selle võib koodist välja jätta, kuna see on funktsiooni FIND vaikeväärtus. Kuid kui see argument on täpsustatud, veenduge, et see poleks jutumärkides.

Näide 4: teksti otsimine kommentaarist

Saate kasutada ka funktsiooni VBA FIND, et leida Excelis lahtri kommentaarist teksti.

Parema mõistmise huvides vaadake allolevat näidet, kus meil on tööleht, mis sisaldab kolme kommentaaridega lahtrit (tähistatud punaste kolmnurkadega). Sellest tahame leida teksti "vahendustasu makstud” asub ühes kommentaaris. Sel juhul kasutame järgmist koodi:

Sub LocateComment()
Vahemik("A1:B10").Leia(Mis:="Tasu maksab", LookIn:=xlComments).Valige
End Sub

Otsige kommentaarist teksti

Selle tulemusena valib Excel ainult selle lahtri, mis sisaldab kommentaari, mille tekst on meie koodis määratud.

Näide 5: VBA funktsiooni FIND veakäsitlus

Kui otsitav tekst ei ole antud vahemikus, tagastab VBA veateate, nagu allpool näidatud:

Viga 91

Selle vea vältimiseks saame kasutada allpool näidatud koodi:

Sub LocateName()
Hämar tulemus variandina

On Error Resume Next
Vahemik("A1:A10").Leia(Mis:="Cristina").Valige
Viga GoTo 0 korral

Tulemus = ActiveCell.Value

Kui tulemus = "" Siis
MsgBox "Väärtus, mida otsite, ei ole pakutud vahemikus saadaval!"
Välju sub
End Kui

End Sub

Pange tähele ülalolevas koodis, et kui VBA leiab väärtuse, kuvab see leitud väärtuse või kuvab sõnumi kui "Otsitav väärtus pole antud vahemikus saadaval🇧🇷

Lisateavet VBA vigade parandamise kohta leiate artiklist: Exceli VBA vead: kõik, mida pead teadma!

Ăśksikasjad, mida meeles pidada

  • Funktsioon FIND on atribuudi RANGE osa ja te peaksite kasutama FIND pärast ainult vahemiku valimist.
  • Funktsiooni FIND esimene argument (Mis), pluss kõik muu on valikuline.
  • Kui leiate väärtuse pärast konkreetset lahtrit, võite lahtri mainida parameetris Pärast otsingu sĂĽntaksist.

Laadige arvutustabel alla siit sisaldab selles õpetuses esitatud näiteid.

Vaadake ka järgmisi Exceli näpunäiteid:

Mida arvate VBA funktsioonist FIND? Kui teil on küsimusi, jätke oma kommentaar allpool. Vaadake ka rohkem Exceli ja VBA näpunäiteid meie veebisaidilt!

Tommy Banks
Meil on hea meel kuulda, mida arvate

Jäta vastus

TechnoBreak | Pakkumised ja ĂĽlevaated
logo
Luba registreerimine seadetes - ĂĽldine
Ostukorv