Kaip naudoti VBA funkciją Find (6 pavyzdžiai)

  • Pasidalinti
Hugh West

Viena iš svarbiausių ir plačiausiai naudojamų funkcijų, kurias naudojame "Visual Basic" programa (VBA) yra funkcija Find. Šiame straipsnyje parodysiu, kaip galite naudoti FIND funkcija "Excel" su tinkamais pavyzdžiais ir iliustracijomis.

Atsisiųsti praktikos sąsiuvinį

Rasti funkciją VBA programoje Excel.xlsm

6 greiti pavyzdžiai, kaip naudoti funkciją FIND VBA

Čia turime duomenų rinkinį su Knygų pavadinimai, autoriai ir Kainos kai kurių knygų iš knygyno, vadinamo Martino knygynu.

Šiandien mūsų tikslas - susipažinti su įvairiais Rasti funkciją VBA iš šio duomenų rinkinio.

1. Naudokite VBA funkciją Find be parametrų

Galite naudoti Rasti funkciją VBA be jokių parametrų.

Tuomet jis ieškos konkrečios vertės ląstelių intervale ir grąžins pirmą rastą atitikmenį.

Ieškokime pavadinimo "P. B. Shelly" stulpelyje Autorius ( C4:C13 ).

Linija su Rasti funkciją bus:

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

Visas VBA kodas bus:

VBA kodas:

 Sub Find() Set cell = Range("C4:C17").Find("P. B. Shelly") MsgBox cell.Address End Sub 

Išvestis:

Jis sukuria Makro vadinamas . Rasti Jei paleisite makrokomandą, ji grąžins $C$6 , pirmosios ląstelės adresą su pavadinimu P. B. Shelly .

Skaityti daugiau: Ieškoti diapazone naudojant VBA "Excel": įskaitant tikslius ir dalinius atitikmenis

2. Taikykite VBA funkciją "Find" su parametru "After" (norėdami pradėti paiešką nuo konkrečios ląstelės)

Galite naudoti Po parametras su Rasti funkciją svetainėje VBA . Tada jis pradės ieškoti reikšmės iš žemiau esančios ląstelės, esančios diapazone.

Pavyzdžiui, pradėkime ieškoti pavadinimo "P. B. Shelly" iš žemiau esančios ląstelės C6 .

Kodo eilutė bus tokia:

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

Ir visiškai VBA kodas bus:

VBA kodas:

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

Išvestis:

Jis grąžins $C$13 nes paieška pradedama iš žemiau esančios ląstelės C6 , tai iš ląstelės C7 . Taigi, jis gauna P. B. Shelly ląstelėje C13 pirma.

Skaityti daugiau: Kaip rasti eilutę ląstelėje naudojant "Excel" VBA

Svetainė Po parametras su Rasti funkciją ratu ieško reikšmės.

Tai reiškia, kad paieška pradedama nuo žemiau esančio langelio diapazone, baigiama paieška diapazone ir vėl pradedama nuo diapazono viršaus.

Pavyzdžiui, pradėkime ieškoti pavadinimo "Johnas Keatsas" iš žemiau esančios ląstelės C8 naudojant Po parametras.

Kodo eilutė bus tokia:

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

Ir visiškai VBA kodas bus:

VBA kodas:

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

Išvestis:

Jis grąžins $C$7 nes paieška pradedama iš žemiau esančios ląstelės C8 , tai iš ląstelės C9 .

Ji neranda nieko iki ląstelės C13 , todėl vėl pradedama nuo ląstelės C4 ir randa vieną ląstelėje C7 .

Panašūs skaitiniai:

  • Kaip rasti eilutę su VBA programa "Excel" (8 pavyzdžiai)
  • Tikslaus atitikmens paieška naudojant VBA programoje "Excel" (5 būdai)
  • Kaip rasti ir pakeisti naudojant VBA (11 būdų)

4. Naudokite VBA funkciją Find su parametru LookAt (tiksliam arba daliniam atitikimui)

Galite naudoti Rasti funkciją svetainėje VBA su LookAt parametras.

Naudokite LookAt = xlWhole Tiksli rungtynės ir LookAt=xlPart Dalinis rungtynės.

Pavyzdžiui, pabandykime išsiaiškinti, ar yra knyga, kurios pavadinimas "Odė" į Knygos pavadinimas stulpelis ( B4:B13 ).

Jei naudosime xlVisiškai kodo eilutėje:

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

Išvestyje bus rodoma klaida, nes nebus rasta jokių tiksliai rungtynės.

Tačiau jei naudojate:

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

Tada jis grįš $B$9 , nes yra knyga, kurios pavadinimas "Odė" į jį ląstelėje B7 , "Odė giesmininkui".

Taigi visas kodas dalinis rungtynės yra:

VBA kodas:

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

5. VBA funkcijos "Find" veikimas su parametru "SearchDirection" (paieškos krypčiai nurodyti)

Taip pat galite naudoti Rasti funkciją svetainėje VBA su SearchDirection parametras.

Naudokite SearchDirection = xlNext ieškoti iš Iš viršaus į apačią .

Ir SearchDirection = xlPrevious ieškoti iš Iš apačios į viršų .

Pavyzdžiui, pabandykime rasti autorių Elif Shafak stulpelyje Autorius ( C4:C13 ).

Jei naudosime xlNext kodo eilutėje:

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

Tada bus grąžinama $C$5 .

Tačiau jei naudojate:

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

Tada jis grįš $C$11 .

Taigi visas paieškos kodas iš iš apačios į viršų yra:

VBA kodas:

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

6. Find funkcija VBA su MatchCase parametru (jei norite rasti atitikmenį, jautrų ar nejautrų atitikmenį)

Galiausiai galite naudoti Rasti funkciją su MatchCase parametras.

Naudokite MatchCase = True , kai atsižvelgiama į mažąsias ir didžiąsias raides. rungtynės , ir MatchCase=False Atskirų raidžių rungtynės.

Pavyzdžiui, pabandykime rasti knygą "motina" į Knygos pavadinimas stulpelis ( B4:B13 ).

Jei kodo eilutėje naudosime True:

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

Išvestyje bus rodoma klaida, nes nebus rasta jokio atitikmens.

Tačiau jei naudojate:

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

Tada jis grįš $B$9 nes yra knyga, pavadinta "Motina" ląstelėje B8 .

Taigi visas kodas Atskirų raidžių rungtynės yra:

VBA kodas:

 Sub Find() Set cell = Range("B4:B13").Find("Mother", MatchCase:=False) MsgBox cell.Address End Sub 

Išvada

Naudodamiesi šiais metodais galite naudoti funkciją Find Visual Basic programoje. Ar turite klausimų? Nedvejodami kreipkitės į mus.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.