Obsah
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.xlsm6 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.