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