FIND funkcija VBA: kaip ją naudoti?

nori išmokti naudotis FIND funkcija VBA🇧🇷 Tada esate tinkamoje vietoje!

Kas nežino „Excel“ parinkties PAIEŠKA? Jei kurį laiką dirbate su „Excel“, tikriausiai naudojote PAIEŠKOS funkciją arba populiarųjį spartųjį klavišą Ctrl + L, norėdami rasti žodį ar turinio dalį, kurios norite ieškoti visame darbalapyje. kaip ir visa darbo knyga.

Be to, VBA turime funkciją FIND, kuri gali padėti rasti ieškomą vertę.

Vykdykite toliau pateiktą informaciją, kad sužinotumėte daugiau apie šią funkciją per praktinius pavyzdžius.

Kaip funkcija FIND veikia VBA?

Funkcija Excel VBA FIND ieško konkrečios reikšmės konkrečiame diapazone. Ieško pirmojo tos reikšmės pasireiškimo ir, jei randama, funkcija grąžina langelį, kuriame ji yra. Tačiau jei atitikmens nerasta, funkcija nieko nepateikia. Funkcija VBA FIND gali grąžinti tikslią arba dalinę atitiktį.

Pavyzdžiui, šis kodas ieško teksto "San Pablo» intervale A1: A10 įDarbalapis1🇧🇷

Su lapais ("Sheet1"). Diapazonas ("A1:A10")
Nustatyti Rng = .Rasti(Kas:="San Paulas")

Funkcijos FIND naudojimo VBA tikslas yra rasti norimą reikšmę tam tikrame duomenų rinkinyje. Naudodami VBA kodą galite automatizuoti „Excel“ reikšmių paieškos užduotį.

VBA FIND funkcijos sintaksė

Funkcijos VBA FIND sintaksė deklaruojama taip:

išraiška.Rasti(kas, po, pažiūrėti, pažiūrėti, paieškos tvarka, paieškos kryptis, mažosios raidės atitiktis, atitikties baitas, paieškos formatas)

Kur:

išraiška: yra diapazono objektas, esantis prieš FIND funkciją VBA kode. Paieškos diapazonas gali būti viena ar daugiau eilučių, stulpelių arba visa skaičiuoklė. Funkcija VBA FIND priima šiuos argumentus:

  • Kas: Tai vertė, kurios reikia ieškoti. Tai gali būti skaitiniai, tekstiniai ar bet kokio kito „Excel“ duomenų tipo. Šis argumentas yra toks pat kaip „Rasti“ parinktisrasti ir pakeisti“ iš Excel.
  • Po: Nurodo langelį, nuo kurio bus pradėta paieška. Jis įvedamas kaip vieno langelio nuoroda. Jei šis argumentas praleistas, paieška pradedama po langelio viršutiniame kairiajame nurodyto paieškos diapazono kampe.
  • Pažiūrėk: Tai vieta (arba duomenys), kurioje vertės turėtų būti ieškoma. Tai gali būti komentaras (xlComments), formulė (xlFormulas) arba reikšmė (xlValues). Numatytoji šio argumento reikšmė yra xlFormulas. Be to, šis argumentas yra toks pat kaip „Rasti“ parinktisrasti ir pakeisti“ iš Excel.
  • Pažvelk: Šis argumentas nusprendžia, ar atitikti visą langelio turinį (tiksli atitiktis), ar jo dalį (dalinė atitiktis). Tikslios ir dalinės atitikties konstantos yra xlWhole ir xlPart. Numatytoji šio argumento reikšmė yra xlPart.
  • Paieškos tvarka: Šis argumentas rodo paieškos tvarką. Galite nurodyti, ar paieška bus vykdoma eilutėse (xlByRows) ar stulpeliuose (xlByColumns). Numatytoji šio argumento reikšmė yra xlByRows. Be to, šis argumentas yra toks pat kaip „Rasti“ parinktisrasti ir pakeisti“ iš Excel.
  • Paieškos adresas: Nurodo adresą, kuriuo bus atliekama paieška. Galite ieškoti žemyn arba į kitą langelį naudodami xlNext konstantą. Arba galite ieškoti atgal (aukštyn) arba ankstesniame langelyje naudodami konstantą xlPrevious. Numatytoji šio argumento reikšmė yra xlNext.
  • Rungtynių atvejis: Šis argumentas nusprendžia, ar paieška turi skirti didžiąsias ir mažąsias raides, ar ne. Jei paieškoje skiriamos didžiosios ir mažosios raidės, šis argumentas nurodomas kaip tiesa (TRUE), kitu atveju jis yra klaidingas (FALSE). Numatytoji šio argumento reikšmė yra False.
  • MatchByte: Šis argumentas turėtų būti naudojamas, jei kas nors įdiegė arba pasirinko dviejų baitų kalbos palaikymą. Turi būti nurodyta kaip tiesa, jei dviejų baitų simboliai turi atitikti dviejų baitų simbolius. Turėtų būti nurodyta kaip klaidinga, jei dviejų baitų simboliai turi būti suderinti su vieno baito atitikmenimis.
  • paieškos formatas: Nurodo, ar ieškoma reikšmė turi būti tam tikro formato (pvz., paryškinta arba kursyvu), ar ne. Jei paieškos reikšmė turi atitikti formatavimo metodą, šis argumentas nurodomas kaip tiesa, kitu atveju klaidingas. Numatytoji šio argumento reikšmė yra false (FALSE).

tik argumentas būtina. Kiti argumentai yra neprivalomi.

Funkcija FIND pateikia vieną iš šių rezultatų:

  • Jei randama atitiktis, funkcija grąžina pirmąjį langelį, kuriame randama reikšmė.
  • Jei atitikmens nerasta, funkcija nieko nepateikia. Taip yra todėl, kad funkcijos objektas nėra nustatytas į nieką.

Arba, jei atitikmens nerasta, tinkintas pranešimas, nurodytas per pranešimų dėžutės funkcija gali būti grąžintas (žr. toliau pateiktus kodų pavyzdžius).

Pastaba 1: Paieška pradedama po argumente nurodyto langelio. Po ir tęsia iki paskutinio langelio paieškos diapazone. Jei reikšmė nerandama iki paskutinio langelio, paieška vėl pradedama nuo pirmo langelio paieškos diapazone iki langelio, nurodyto argumente. Po🇧🇷

Todėl argumente nurodyta ląstelė Po jo ieškoma paieškos proceso pabaigoje. Norėdami gauti daugiau informacijos apie argumento naudojimą Požr. antrą pavyzdį šiame straipsnyje.

Pastaba 2: Kiekvieną kartą, kai naudojama funkcija VBA FIND, įsižiūrėk🇧🇷 Pažiūrėk🇧🇷 paieškos tvarka y MatchByte Išsaugomos. Todėl, jei šios reikšmės bus praleistos kitą kartą naudojant funkciją, „Excel“ naudos anksčiau išsaugotas reikšmes. Todėl rekomenduojama aiškiai deklaruoti pateiktus argumentus, kai atliekama paieška naudojant VBA FIND funkciją.

Kaip naudoti funkciją FIND programoje „Excel VBA“?

Kad suprastumėte FIND funkcijos naudojimą VBA, toliau pateikiame keletą praktinių pavyzdžių.

1 pavyzdys: langelio su pirmuoju paieškos reikšmės pasireiškimu pasirinkimas

Šiame pirmame pavyzdyje tarkime, kad turite sąrašą, kuriame yra keletas pavadinimų, kaip parodyta paveikslėlyje žemiau, ir norite naršyti ir pasirinkti langelį, kuriame yra pavadinimas. Pedro🇧🇷

Iš ten atlikite šiuos veiksmus:

1. Pasiekite vadovą Kūrėjas 🇧🇷 Visual Basic🇧🇷 (Jei „Excel“ neįjungėte skirtuko Kūrėjas, patikrinkite čia žingsnis po žingsnio).

kūrėjo vadovas

du. VBA ekrane kairėje esančiame meniu pasirinkite norimą darbalapį. Šiame pavyzdyje mes pasirinksime Darbalapis1 kuris yra darbalapis, kuriame yra vardų sąrašas.

3. Pasirinkę norimą darbalapį, dešinėje esančioje srityje įveskite žemiau esantį kodą:

Pasirinkite langelį su pirmąja ieškomos reikšmės pasireiškimu

Sub LocateName()
Diapazonas("A1:A10").Rasti(Kas:="Petras").Pasirinkite
End Sub
  • Aukščiau esančiame kode paminėjome diapazoną, kurio ieškome (A1: A10🇧🇷
  • Paminėję diapazoną, įrašykite tašką (.) ir įveskite RASKITE🇧🇷
  • Pirmasis mūsų argumentas yra tai, ko mes ieškome. Norėdami pabrėžti argumentą, galime perduoti argumentą kas :=tai bus naudinga norint nustatyti, apie kurį parametrą turime omenyje.
  • Paskutinė dalis yra radus žodį, ką norime padaryti. Turime pasirinkti žodį, todėl argumentą perduokite kaip Pasirinkite🇧🇷
  • Tada paleiskite šį kodą naudodami raktą F5 arba rankiniu būdu, kaip parodyta paveikslėlyje žemiau, kad pasirinktumėte pirmą langelį, kuriame yra pavadinimas Pedro🇧🇷

rasti VBA

2 pavyzdys: pasirinkite langelį su antruoju paieškos reikšmės pasireiškimu

Šiame antrame pavyzdyje atkreipkite dėmesį, kad šiame paveikslėlyje yra keletas pavadinimų diapazone A1:A10. Atkreipkite dėmesį, kad pavadinimas "Pedro“ A stulpelyje pasirodo du kartus.

Pasirinkite langelį su antruoju įvykiu

Tokiu atveju norime ieškoti ir pasirinkti antrasis reiškinys vardo „Petras“ A stulpelyje (ty langelyje A7). Norėdami tai padaryti, naudosime šį kodą:

RASTI antrąjį VBA atvejį

Sub LocateName()
Diapazonas("A1:A10").Rasti(Kas:="Petras", After:=Range("A2")).Pasirinkite
End Sub

Atkreipkite dėmesį į aukščiau pateiktą kodą, kad paieška prasideda po langelio A2 ir tęsiama iki paskutinio langelio A stulpelyje. Taip yra todėl, kad paieškos diapazonas buvo nurodytas kaip A stulpelis (A1:A10).

Taigi, kadangi paieška prasideda langelyje A3, reikšmė "Pedro“ yra kameroje A7 suteikia "Skaičiuoklė2🇧🇷 Todėl vykdant kodą ląstelė A7 bus parinkta funkcija FIND.

Jei vardas «Pedro“ nebuvo rastas langelyje A3 iki paskutinio A stulpelio langelio, paieška vėl prasidės langelyje A1 ir šį kartą baigsis langelyje A2. Todėl langelis, nurodytas argumente „Po“ ieškoma iškart paieškos proceso pabaigoje.

3 pavyzdys: raskite tekstą nurodydami kai kuriuos jo simbolius

Norėdami ieškoti teksto nurodydami tik dalį jo, įveskite argumentą Pažiūrėk kaip xlDalis arba praleisti šį argumentą. Pagal numatytuosius nustatymus funkcija FIND atitinka simbolius paieškos reikšmėje su visa eilute. Tada jis grąžina langelį, kuriame yra visa ši eilutė.

Pažvelkite į toliau pateiktą pavyzdį:

Sub LocateName()
Diapazonas("A1:A10").Rasti(What:="Ped", LookAt:=xlPart).Pasirinkite
End Sub

Šis kodas ieško simbolių "PED“ „Sheet1“ diapazone A25:A3. Grąžinama ląstelė, kurioje yra reikšmė, kuri yra pavadinta dalinis susirašinėjimas🇧🇷 Taigi, nepaisant to, ar paieškos reikšmės simboliai yra eilutės pradžioje, viduryje ar pabaigoje, „Excel VBA“ pateikia atitiktį.

Stebėjimas: konstanta xlDalis jis gali būti praleistas kode, nes tai yra numatytoji funkcijos FIND reikšmė. Bet jei šis argumentas nurodytas, įsitikinkite, kad jis nėra įdėtas į dvigubas kabutes.

4 pavyzdys: teksto radimas komentare

Taip pat galite naudoti funkciją VBA FIND, kad surastumėte tekstą langelio komentare programoje „Excel“.

Norėdami geriau suprasti, pažiūrėkite į toliau pateiktą pavyzdį, kuriame turime darbalapį, kuriame yra trys langeliai su komentarais (pažymėti raudonais trikampiais). Iš to norime rasti tekstą „sumokėtas komisinis“, esantis viename iš komentarų. Tokiu atveju naudosime šį kodą:

Sub LocateComment()
Diapazonas("A1:B10").Rasti(Ką:="Komisiniai moka", LookIn:=xlComments).Pasirinkite
End Sub

Raskite tekstą komentare

Dėl to „Excel“ pasirinks tik tą langelį, kuriame yra komentaras, kurio tekstas buvo nurodytas mūsų kode.

5 pavyzdys: VBA funkcijos FIND klaidų apdorojimas

Jei tekstas, kurio ieškome, nepatenka į nurodytą diapazoną, VBA grąžins klaidą, kaip parodyta toliau:

Klaida 91

Norėdami išvengti šios klaidos, galime naudoti kodą, kaip parodyta toliau:

Sub LocateName()
Neryškus rezultatas kaip variantas

On Error Resume Toliau
Diapazonas("A1:A10").Rasti(Kas:="Kristina").Pasirinkite
Dėl klaidos GoTo 0

Rezultatas = ActiveCell.Value

Jei rezultatas = "" Tada
MsgBox "Jūsų ieškomos vertės nėra pateiktame diapazone!"
Išeiti iš sub
End If

End Sub

Aukščiau esančiame kode atkreipkite dėmesį, kad jei VBA ras reikšmę, ji parodys rastą reikšmę arba parodys pranešimą kaip "Jūsų ieškomos vertės pateiktame diapazone nėra🇧🇷

Norėdami gauti daugiau patarimų, kaip ištaisyti VBA klaidas, peržiūrėkite straipsnį: Excel VBA klaidos: viskas, ką reikia žinoti!

Detalės, kurias reikia prisiminti

  • Funkcija FIND yra RANGE ypatybės dalis ir turėtumėte naudoti FIND pasirinkę tik diapazoną.
  • FIND funkcijoje pirmasis argumentas (), be to, visa kita neprivaloma.
  • Jei reikšmę randate po konkretaus langelio, galite paminėti langelį parametre Po paieškos sintaksės.

Atsisiųskite skaičiuoklę čia kuriame yra šioje mokymo programoje pateikti pavyzdžiai.

Taip pat peržiūrėkite šiuos „Excel“ patarimus:

Taigi, ką manote apie FIND funkciją VBA? Jei turite klausimų, palikite savo komentarą žemiau. Taip pat peržiūrėkite daugiau Excel ir VBA patarimų mūsų svetainėje!

Tommy Banksas
Mums bus malonu išgirsti, ką manote

Palikti atsakymą

TechnoBreak | Pasiūlymai ir atsiliepimai
logotipas
Įgalinti registraciją nustatymuose - bendra
Prekių krepšelis