Turinys
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.xlsm6 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ą iš VBA iš šio duomenų rinkinio.
1. Naudokite VBA funkciją Find be parametrų
Galite naudoti Rasti funkciją iš 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
3. Paleiskite VBA funkciją Find su apvyniojimu aplink parametrą After (reikšmės paieškai ratu)
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 už Tiksli rungtynės ir LookAt=xlPart už 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 už , kai atsižvelgiama į mažąsias ir didžiąsias raides. rungtynės , ir MatchCase=False už 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.