Ako používať funkciu Find vo VBA (6 príkladov)

  • Zdieľajte To
Hugh West

Jednou z najdôležitejších a najpoužívanejších funkcií, ktoré používame v Aplikácia jazyka Visual Basic (VBA) je funkcia Find. V tomto článku vám ukážem, ako môžete použiť Funkcia FIND programu Excel s vhodnými príkladmi a ilustráciami.

Stiahnite si cvičebnicu

Nájsť funkciu VBA v programe Excel.xlsm

6 rýchlych príkladov na použitie funkcie FIND vo VBA

Tu máme súbor údajov s Názvy kníh, autori a Ceny niektorých kníh z kníhkupectva s názvom Martin Bookstore.

Dnes je naším cieľom pozrieť sa na rôzne typy použitia Nájsť funkciu z VBA z tohto súboru údajov.

1. Použitie funkcie Find vo VBA bez parametra

Môžete použiť Nájsť funkciu z VBA bez parametrov.

Potom vyhľadá konkrétnu hodnotu v rozsahu buniek a vráti prvú nájdenú zhodu.

Vyhľadajme názov "P. B. Shelly" v stĺpci Autor ( C4:C13 ).

Riadok s Nájsť funkciu bude:

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

Kompletný Kód VBA bude:

Kód VBA:

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

Výstup:

Vytvára Makro s názvom Nájsť Ak spustíte makro, vráti sa $C$6 , prvá adresa bunky s názvom P. B. Shelly .

Prečítajte si viac: Vyhľadávanie v rozsahu pomocou VBA v programe Excel: vrátane presných a čiastočných zhody

2. Použitie funkcie Find vo VBA s parametrom After (spustenie vyhľadávania od konkrétnej bunky)

Môžete použiť Po stránke s parametrom Nájsť funkciu na stránke VBA Potom začne hľadať hodnotu zospodu bunky v rámci rozsahu.

Začnime napríklad vyhľadávať názov "P. B. Shelly" z nižšie uvedenej bunky C6 .

Riadok kódu bude:

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

A kompletný Kód VBA bude:

Kód VBA:

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

Výstup:

Vráti sa $C$13 pretože začína vyhľadávať od spodnej bunky C6 , ktorý je z bunky C7 . Takže sa dostane P. B. Shelly v bunke C13 prvý.

Prečítajte si viac: Ako nájsť reťazec v bunke pomocou VBA v programe Excel

3. Spustenie funkcie Find vo VBA s obtekaním parametra After (hľadanie hodnoty kruhovým spôsobom)

Stránka Po stránke s parametrom Nájsť funkciu hľadá hodnotu kruhovým spôsobom

To znamená, že začne vyhľadávať pod bunkou v rámci rozsahu, skončí vyhľadávanie v rozsahu a potom opäť začne od vrcholu rozsahu.

Začnime napríklad vyhľadávať názov "John Keats" z nižšie uvedenej bunky C8 pomocou Po stránke parameter.

Riadok kódu bude:

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

A kompletný Kód VBA bude:

Kód VBA:

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

Výstup:

Vráti sa $C$7 pretože začína vyhľadávať od spodnej bunky C8 , ktorý je z bunky C9 .

Nenájde nič až do bunky C13 , takže sa opäť začína od bunky C4 a nájde ho v bunke C7 .

Podobné čítanie:

  • Ako nájsť reťazec pomocou VBA v programe Excel (8 príkladov)
  • Vyhľadanie presnej zhody pomocou VBA v programe Excel (5 spôsobov)
  • Ako nájsť a nahradiť pomocou VBA (11 spôsobov)

4. Využitie funkcie Find vo VBA s parametrom LookAt (pre presnú alebo čiastočnú zhodu)

Môžete použiť Nájsť funkciu na stránke VBA s LookAt parameter.

Použite LookAt = xlWhole pre Presne a LookAt=xlPart pre Čiastočné zápas.

Skúsme napríklad zistiť, či existuje nejaká kniha s názvom "Óda" v Názov knihy stĺpec ( B4:B13 ).

Ak použijeme xlCelá v riadku kódu:

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

Výstup zobrazí chybu, pretože nenájde žiadne presný zápas.

Ak však použijete:

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

Potom sa vráti $B$9 , pretože existuje kniha s názvom "Óda" v nej v bunke B7 , Óda na slávika.

Takže kompletný kód pre čiastočné zápas je:

Kód VBA:

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

5. Ovládanie funkcie Find vo VBA s parametrom SearchDirection (určenie smeru vyhľadávania)

Môžete tiež použiť Nájsť funkciu na stránke VBA s SearchDirection parameter.

Použite SearchDirection = xlNext na vyhľadávanie z Odhora nadol .

A SearchDirection = xlPrevious na vyhľadávanie z Odspodu nahor .

Skúsme napríklad nájsť autora Elif Shafak v stĺpci Autor ( C4:C13 ).

Ak použijeme xlNext v riadku kódu:

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

Potom sa vráti $C$5 .

Ak však použijete:

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

Potom sa vráti $C$11 .

Takže kompletný kód pre vyhľadávanie z zdola nahor je:

Kód VBA:

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

6. Funkcia Find vo VBA s parametrom MatchCase (pre porovnávanie citlivé na veľkosť písmen alebo necitlivé)

Nakoniec môžete použiť Nájsť funkciu s MatchCase parameter.

Použite MatchCase = True pre rozlišovanie veľkých a malých písmen zápas , a MatchCase=False pre rozlišovanie veľkých a malých písmen zápas.

Skúsme napríklad nájsť knihu "matka" v Názov knihy stĺpec ( B4:B13 ).

Ak v riadku kódu použijeme True:

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

Výstup zobrazí chybu, pretože nenájde žiadnu zhodu.

Ak však použijete:

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

Potom sa vráti $B$9 pretože existuje kniha s názvom "Matka" v bunke B8 .

Takže kompletný kód pre rozlišovanie veľkých a malých písmen zápas je:

Kód VBA:

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

Záver

Pomocou týchto metód môžete používať funkciu Find v aplikácii Visual Basic. Máte nejaké otázky? Neváhajte a opýtajte sa nás.

Hugh West je veľmi skúsený tréner a analytik Excelu s viac ako 10-ročnými skúsenosťami v tomto odvetví. Má bakalársky titul v odbore účtovníctvo a financie a magisterský titul v odbore Business Administration. Hugh má vášeň pre vyučovanie a vyvinul jedinečný vyučovací prístup, ktorý sa dá ľahko sledovať a pochopiť. Jeho odborné znalosti Excelu pomohli tisíckam študentov a profesionálov na celom svete zlepšiť svoje zručnosti a vyniknúť vo svojej kariére. Hugh sa prostredníctvom svojho blogu delí o svoje znalosti so svetom a ponúka bezplatné výukové programy Excelu a online školenia, ktoré jednotlivcom a firmám pomôžu naplno využiť ich potenciál.