Etsi-funktion käyttäminen VBA:ssa (6 esimerkkiä)

  • Jaa Tämä
Hugh West

Yksi tärkeimmistä ja laajimmin käytetyistä toiminnoista, joita käytämme ohjelmassa Visual Basic -sovellus (VBA) on Find-toiminto. Tässä artikkelissa näytän, miten voit käyttää Find-toimintoa. FIND-toiminto Excelin käyttöä asianmukaisten esimerkkien ja kuvien avulla.

Lataa harjoituskirja

Etsi toiminto VBA:ssa Excel.xlsm:ssä Excel.xlsm:ssä

6 nopeaa esimerkkiä FIND-funktion käytöstä VBA:ssa

Tässä meillä on datajoukko, jossa on merkintä Kirjan nimet, Kirjailijat ja Hinnat Martin Bookstore -nimisen kirjakaupan kirjoista.

Tänään tavoitteenamme on tarkastella erilaisia käyttötapoja, joita voidaan käyttää Etsi toiminto of VBA tästä aineistosta.

1. Käytä Etsi-toimintoa VBA:ssa ilman parametria.

Voit käyttää Etsi toiminto of VBA ilman parametreja.

Sitten se etsii tiettyä arvoa solujen alueelta ja palauttaa ensimmäisen löytämänsä osuman.

Etsitään nimi "P. B. Shelly" sarakkeessa Kirjoittaja ( C4:C13 ).

Rivi, jossa on Etsi toiminto on:

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

Täydellinen VBA-koodi on:

VBA-koodi:

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

Lähtö:

Se tuottaa Makro nimeltään Etsi . Jos suoritat makron, se palauttaa seuraavat tiedot $C$6 , ensimmäisen solun osoite, jossa on nimi P. B. Shelly .

Lue lisää: Etsi alueelta VBA:lla Excelissä: mukaan lukien tarkat ja osittaiset vastaavuudet

2. Sovelletaan Etsi-toimintoa VBA:ssa After-parametrilla (aloitetaan haku tietystä solusta).

Voit käyttää Jälkeen parametrin kanssa Etsi toiminto osoitteessa VBA . Sitten se alkaa etsiä arvoa solun alapuolelta alueelta.

Aloitetaan esimerkiksi etsiminen nimellä "P. B. Shelly" solun alapuolelta C6 .

Koodirivi on:

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

Ja täydellinen VBA-koodi on:

VBA-koodi:

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

Lähtö:

Se palauttaa $C$13 koska se aloittaa etsinnän solun alapuolelta C6 , se on solusta C7 . Joten se saa P. B. Shelly solussa C13 ensiksi.

Lue lisää: Kuinka löytää merkkijono solussa käyttämällä VBA: ta Excelissä

3. Suorita Find-funktio VBA:ssa kietomalla After-parametrin ympärille (arvon etsiminen ympyränmuotoisesti)

The Jälkeen parametrin kanssa Etsi toiminto etsii arvoa ympyränmuotoisesti

Toisin sanoen se aloittaa haun alueen solun alapuolelta, lopettaa haun alueella ja aloittaa sitten uudelleen alueen yläreunasta.

Aloitetaan esimerkiksi haku nimellä "John Keats" solun alapuolelta C8 käyttämällä Jälkeen parametri.

Koodirivi on:

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

Ja täydellinen VBA-koodi on:

VBA-koodi:

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

Lähtö:

Se palauttaa $C$7 koska se aloittaa etsinnän solun alapuolelta C8 , se on solusta C9 .

Se ei löydä mitään soluun asti C13 , joten se alkaa jälleen solusta C4 ja löytää yhden solusta C7 .

Samanlaisia lukemia:

  • Miten löytää merkkijono VBA: lla Excelissä (8 esimerkkiä)
  • Etsi tarkka vastaavuus VBA:n avulla Excelissä (5 tapaa)
  • Etsi ja korvaa VBA:n avulla (11 tapaa)

4. Hyödynnä VBA:n Etsi-toimintoa LookAt-parametrin kanssa (tarkkaa tai osittaista vastaavuutta varten).

Voit käyttää Etsi toiminto osoitteessa VBA kanssa LookAt parametri.

Käytä LookAt = xlWhole varten Tarkka ottelu, ja LookAt=xlPart a Osittain ottelu.

Yritetään esimerkiksi selvittää, onko olemassa kirjaa nimeltä "Oodi" vuonna Kirjan nimi sarake ( B4:B13 ).

Jos käytämme xlKoko koodirivillä:

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

Tuloste näyttää virheen, koska se ei löydä mitään tarkka ottelu.

Mutta jos käytät:

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

Sitten se palaa $B$9 , koska on olemassa kirja, jonka nimi on "Oodi" siinä solussa B7 , Oodi yölaululle.

Joten koko koodi osittainen ottelu on:

VBA-koodi:

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

5. Etsi-toiminnon käyttäminen VBA:ssa SearchDirection-parametrin avulla (haun suunnan määrittäminen)

Voit myös käyttää Etsi toiminto osoitteessa VBA kanssa SearchDirection parametri.

Käytä SearchDirection = xlNext hakua varten Ylhäältä alas .

Ja SearchDirection = xlPrevious hakua varten Alhaalta ylös .

Yritetään esimerkiksi löytää tekijä Author Elif Shafak sarakkeessa Kirjoittaja ( C4:C13 ).

Jos käytämme xlNext koodirivillä:

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

Sitten se palauttaa $C$5 .

Mutta jos käytät:

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

Sitten se palaa $C$11 .

Joten koko koodi hakua varten osoitteesta alhaalta ylöspäin on:

VBA-koodi:

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

6. Etsi-toiminto VBA:ssa MatchCase-parametrin kanssa (isokirjaintarkka tai epäkohtainen vastaavuus)

Lopuksi voit käyttää Etsi toiminto kanssa MatchCase parametri.

Käytä MatchCase = True a case-sensitive ottelu , ja MatchCase=False a case-insensitive ottelu.

Yritetään esimerkiksi etsiä kirjaa nimeltä "äiti" vuonna Kirjan nimi sarake ( B4:B13 ).

Jos käytämme koodirivillä True:

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

Tulosteessa näkyy virhe, koska se ei löydä yhtään vastaavuutta.

Mutta jos käytät:

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

Sitten se palaa $B$9 koska on olemassa kirja nimeltä "Äiti" solussa B8 .

Joten koko koodi case-insensitive ottelu on:

VBA-koodi:

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

Päätelmä

Näiden menetelmien avulla voit käyttää Etsi-toimintoa Visual Basic -sovelluksessa. Onko sinulla kysyttävää? Kysy meiltä rohkeasti.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.