Jak používat funkci Najít ve VBA (6 příkladů)

  • Sdílet Toto
Hugh West

Jednou z nejdůležitějších a nejpoužívanějších funkcí, které používáme v systému Aplikace Visual Basic (VBA) je funkce Find. V tomto článku vám ukážu, jak můžete použít funkci Funkce FIND Excelu s vhodnými příklady a ilustracemi.

Stáhnout cvičebnici

Hledání funkce VBA v aplikaci Excel.xlsm

6 rychlých příkladů použití funkce FIND ve VBA

Zde máme datovou sadu se znakem Názvy knih, autoři a Ceny některých knih z knihkupectví Martin Bookstore.

Dnes je naším cílem podívat se na různé typy využití Najít funkci z VBA z tohoto souboru dat.

1. Použití funkce Najít ve VBA bez parametru

Můžete použít Najít funkci z VBA bez parametrů.

Pak vyhledá konkrétní hodnotu v rozsahu buněk a vrátí první nalezenou shodu.

Vyhledejme název "P. B. Shelly" ve sloupci Autor ( C4:C13 ).

Řádek s Najít funkci 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áří Makro s názvem Najít . Pokud spustíte makro, vrátí se vám $C$6 , první adresa buňky s názvem P. B. Shelly .

Přečtěte si více: Hledání v rozsahu pomocí VBA v aplikaci Excel: včetně přesných a částečných shod

2. Použití funkce Find ve VBA s parametrem After (zahájení vyhledávání od určité buňky)

Můžete použít Po s parametrem Najít funkci na adrese VBA . Pak začne hledat hodnotu z pod buňky v rámci rozsahu.

Začněme například hledat název "P. B. Shelly" ze spodní buňky C6 .

Řádek 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átí se $C$13 protože začíná hledat pod buňkou C6 , to je z buňky C7 ... takže se dostane P. B. Shelly v buňce C13 první.

Přečtěte si více: Jak najít řetězec v buňce pomocí VBA v aplikaci Excel

3. Spuštění funkce Find ve VBA s obtékáním parametru After (kruhové hledání hodnoty)

Na stránkách Po s parametrem Najít funkci hledá hodnotu kruhovým způsobem

To znamená, že začne hledat pod buňkou v rámci rozsahu, ukončí hledání v rozsahu a poté opět začne od horního okraje rozsahu.

Začněme například hledáním názvu "John Keats" ze spodní buňky C8 pomocí Po parametr.

Řádek 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átí se $C$7 protože začíná hledat pod buňkou C8 , to je z buňky C9 .

Nenajde nic až do buňky C13 , takže se opět začíná od buňky C4 a najde ho v buňce C7 .

Podobné čtení:

  • Jak najít řetězec pomocí VBA v aplikaci Excel (8 příkladů)
  • Hledání přesné shody pomocí VBA v aplikaci Excel (5 způsobů)
  • Jak najít a nahradit pomocí VBA (11 způsobů)

4. Využití funkce Find ve VBA s parametrem LookAt (pro přesnou nebo částečnou shodu)

Můžete použít Najít funkci na adrese VBA s LookAt parametr.

Použijte LookAt = xlWhole pro Přesně a LookAt=xlPart pro Částečně zápas.

Zkusme například zjistit, zda existuje nějaká kniha s názvem "Óda" v Název knihy sloupec ( B4:B13 ).

Pokud použijeme xlCelá v řádku kódu:

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

Na výstupu se zobrazí chyba, protože nenajde žádné přesný zápas.

Pokud však použijete:

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

Pak se vrátí $B$9 , protože existuje kniha s názvem "Óda" v ní v buňce B7 , Óda na slavíka.

Takže kompletní kód pro částečné zápas je:

Kód VBA:

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

5. Práce s funkcí Find ve VBA s parametrem SearchDirection (zadání směru hledání)

Můžete také použít Najít funkci na adrese VBA s SearchDirection parametr.

Použijte SearchDirection = xlNext pro vyhledávání z Shora dolů .

A SearchDirection = xlPrevious pro vyhledávání z Odspodu nahoru .

Zkusme například najít autora Elif Shafak ve sloupci Autor ( C4:C13 ).

Pokud použijeme xlNext v řádku kódu:

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

Pak se vrátí $C$5 .

Pokud však použijete:

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

Pak se vrátí $C$11 .

Kompletní kód pro vyhledávání z zdola nahoru je:

Kód VBA:

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

6. Funkce Find ve VBA s parametrem MatchCase (pro porovnání citlivé na velikost písmen nebo necitlivé)

Nakonec můžete použít Najít funkci s MatchCase parametr.

Použijte MatchCase = True pro rozlišování velkých a malých písmen zápas , a MatchCase=False pro rozlišování velkých a malých písmen zápas.

Zkusme například najít knihu "matka" v Název knihy sloupec ( B4:B13 ).

Pokud v řádku kódu použijeme True:

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

Na výstupu se zobrazí chyba, protože nenajde žádnou shodu.

Pokud však použijete:

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

Pak se vrátí $B$9 protože existuje kniha s názvem "Matka" v buňce B8 .

Takže kompletní kód pro rozlišování velký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ávěr

Pomocí těchto metod můžete použít funkci Find v aplikaci Visual Basic. Máte nějaké dotazy? Neváhejte se nás zeptat.

Hugh West je velmi zkušený školitel a analytik Excelu s více než 10 lety zkušeností v oboru. Má bakalářský titul v oboru Účetnictví a finance a magisterský titul v oboru Business Administration. Hugh má vášeň pro výuku a vyvinul jedinečný přístup k výuce, který lze snadno sledovat a pochopit. Jeho odborné znalosti Excelu pomohly tisícům studentů a profesionálů po celém světě zlepšit své dovednosti a vyniknout ve své kariéře. Prostřednictvím svého blogu Hugh sdílí své znalosti se světem a nabízí bezplatné výukové programy Excelu a online školení, které jednotlivcům a firmám pomohou dosáhnout jejich plného potenciálu.