VBA InStr | 5 nejlepších příkladů použití funkce Excel VBA InStr

Funkce Excel VBA InStr

Instr ve VBA se používá k zjištění polohy daného podřetězce v řetězci poté, co zadáme metodu porovnání s funkcí, existují čtyři různé metody porovnání pro tuto funkci, Instr je funkce řetězce, ale výstup vrácený funkcí je numerický, takže výstup této funkce je v celočíselné proměnné.

Řetězec ve VBA není nic jiného než řada znaků, tj. Všechny texty dodávané s uvozovkami jsou považovány za řetězce. Funkce InStr je vestavěná textová funkce používaná k manipulaci s řetězci. Například - Chcete-li extrahovat podřetězec z věty nebo chcete-li použít změny designu písma na konkrétní řetězec v řadě znaků, nebo chcete-li najít pozici znaku a mnoho dalších možností, můžete použít InStr.

Syntax

Má 4 argumenty, jak je znázorněno na následujícím obrázku.

  • [Start]: Toto není povinné. Toto je číselná hodnota, kterou musíme určit, od které pozice řetězce funkce Instr začne hledat zadaný text. Například: pokud chcete hledat znak „a“ ve slově „Bangalore“ z 3. pozice, musíme říci počáteční pozici funkce Instr jako 3. Takže ze znaku 3. pozice je „a“ na 5. pozici. Pokud tento parametr ignorujete, výchozí hodnota je 1.
  • Řetězec 1: Toto je skutečný řetězec, který dodáváme, tj. Z tohoto textu se snažíme najít dílčí řetězec. Například pokud hledáte řetězec „a“ v „Bangalore“, řetězec 1 v Bangalore.
  • Řetězec 2: Není to nic jiného než řetězec, který hledáme. Například pokud hledáte řetězec „a“ v „Bangalore“, řetězec 2 je a .
  • [Porovnat]: Toto je opět nepovinný argument. V argumentu [porovnat] jsou k dispozici tři druhy možností.

  • vbBinaryCompare: Toto není nic jiného než hledání malých a velkých písmen v řetězci (řetězec 2) v řetězci 1. Například pokud hledáme „a“ ve slově „Bangalore“, Instr vrátí jako výsledek 2 a pokud hledáte pro „A“ ve slově „Bangalore“ by Instr vrátil 0 jako výsledek, protože zadaný řetězec je velká písmena.

Můžeme také dát nulu (0) jako argument.

vbTextCompare: Nejedná se o malá a velká písmena prohledávání řetězce 2 v řetězci 1. Například, když hledáme „a“ ve slově „Bangalore“, Instr vrátí jako výsledek 2 a pokud hledáte „A“ ve slově „Bangalore“ by Instr vrátil také 2. Logika je A = a, B = b, C = c atd.….

Můžeme také dát jeden (1) jako argument.

vbDatabaseCompare: Slouží k porovnání informací z vaší databáze, tj. databáze Microsoft Access.

Můžeme také dát jeden (-1) jako argument.

Top 5 příkladů použití funkce VBA Instr

Tuto šablonu aplikace VBA Instr Function Excel si můžete stáhnout zde - Šablona aplikace VBA Instr Function Excel

Příklad č. 1

Začněme prvním příkladem. Ve slově Bangalore najděte polohu postavy a.

Níže uvedený kód provede úkol za nás.

Kód:

 Sub Instr_Example1 () Dim i As Variant i = InStr ("Bangalore", "a") MsgBox i End Sub 

Nyní spusťte výše uvedený kód VBA pomocí klávesy F5 nebo můžete tento kód spustit také ručně, jak je znázorněno na níže uvedeném snímku obrazovky.

Výstup:

Příklad č. 2

Nyní ve slově Bangalore najděte pozici znaku „a“ ze třetí pozice.

Níže uvedený kód provede úkol za nás.

Kód:

 Sub Instr_Example2 () Dim i As Variant i = InStr (3, "Bangalore", "a") MsgBox i End Sub 

Chcete-li spustit výše uvedený kód, můžete použít klávesu F5 nebo můžete tento kód spustit také ručně, jak je znázorněno na níže uvedeném snímku obrazovky.

Výstup:

Nyní se na výše uvedeném obrázku podívejte na rozdíl od předchozího kódu. Protože jsme uvedli počáteční pozici znaku jako 3, ignoroval první znak „a“ na 2. pozici.

Příklad č. 3

Nyní uvidíme vyhledávání malých a velkých písmen. Ve slově Bangalore najděte písmeno „A“.

K tomu musíme zadat argument porovnání jako vbBinaryCompare.

Kód:

 Sub Instr_Example3 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbBinaryCompare) MsgBox i End Sub 

Nyní spusťte tento kód pomocí klávesy F5 nebo můžete tento kód spustit také ručně.

Výstup:

Protože jsme zadali argument porovnání jako funkce vbBinaryCompare Instr, vrátil výsledek jako nulu, protože neexistuje velké písmeno „A“ .

Příklad č. 4

Nyní uvidíme ještě jedno vyhledávání velkých a malých písmen. Ve slově Bangalore najděte písmeno „A“. Předchozí příklad vrátil výsledek jako nulu.

Abychom zde překonali přístup citlivý na velká a malá písmena, musíme zadat argument porovnání jako vbTextCompare.

Kód:

 Sub Instr_Example4 () Dim i As Variant i = InStr (1, "Bangalore", "A", vbTextCompare) MsgBox i End Sub 

Nyní spusťte tento kód pomocí klávesy F5 nebo můžete tento kód spustit také ručně.

Výstup:

Příklad č. 5

Nyní uvidíme pokročilou úroveň funkce Instr. Pokud máte mnoho listů, které mají více či méně podobný název a chcete skrýt všechny tyto listy najednou, můžeme pomocí následujícího kódu skrýt konkrétní list.

Například mám 5 listů s názvem Souhrn 1, Souhrn 2, Souhrn 3, Souhrn 4 a Datový list.

Nyní chci skrýt všechny listy, které mají slovo „Summary“. Pomocí níže uvedeného kódu skryjte všechny listy, jejichž název obsahuje slovo Summary.

Kód:

 Sub To_Hide_Specific_Sheet () Dim Ws jako list pro každou Ws v ActiveWorkbook.Worksheets If InStr (Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVeryHidden End If Next Ws 'InStr function looks for word or phrase in the sheet name „Pokud to najde, bude skrytý End Sub 

Nyní spusťte tento kód pomocí klávesy F5 nebo tento kód můžete také spustit ručně a zobrazit výstup.

Podobně pro zobrazení všech těchto listů použijte níže uvedený kód.

Kód:

 Sub To_UnHide_Specific_Sheet () Dim Ws jako list pro každou W v ActiveWorkbook.Worksheets If InStr (Ws.Name, "Summary")> 0 Then Ws.Visible = xlSheetVisible End If Next Ws 'InStr function looks for word or phrase in the sheet name „Pokud najde, bude skrytý End Sub 

Nyní spusťte tento kód pomocí klávesy F5 nebo tento kód můžete také spustit ručně a zobrazit výstup.

Věci k zapamatování

  • Instr je funkce citlivá na velká a malá písmena. Chcete-li vyloučit tento problém s rozlišováním velkých a malých písmen, musíte zadat argument [porovnat] jako.
  • Pokud hledáte znak rozlišující velká a malá písmena, musíte zadat argument [porovnat], protože ve výchozím nastavení to VBA bere jako argument, i když jej nedodáte.
  • Instr je funkce VBA, takže ji nemůžete použít v listu aplikace Excel jako jiné předdefinované vzorce.
  • Pokud funkce nemůže najít řetězec 2, bude výsledek nulový.

$config[zx-auto] not found$config[zx-overlay] not found