Instr in Excel VBA - Easy Excel makra

Obsah

Jednoduchá funkce Instr | Počáteční pozice | Nula | Instr a If | Hledání nerozlišuje velká a malá písmena

Použití Instr v Excel VBA najít pozici podřetězce v řetězci. Funkce Instr je docela univerzální.

Umístěte příkazové tlačítko na list a přidejte níže uvedené řádky kódu. Chcete -li spustit řádky kódu, klikněte na příkazové tlačítko na listu.

Jednoduchá funkce Instr

Ve výchozím nastavení začne funkce Instr hledat na začátku řetězce (pozice 1).

Kód:

Dim stav jako řetězec
stát = "Virginie"
MsgBox InStr (stav, „gin“)

Výsledek:

Poznámka: řetězec „gin“ byl nalezen na pozici 4.

Počáteční pozice

Druhá níže uvedená funkce Instr začne hledat na pozici 7.

Kód:

Dim stav jako řetězec
state = "Jižní Karolína"
MsgBox InStr (stav, "o")
MsgBox InStr (7, stav, "o")

Výsledek:

Vysvětlení: první funkce Instr najde řetězec „o“ na pozici 2. Druhá funkce Instr začne hledat na pozici 7 a najde řetězec „o“ na pozici 10.

Nula

Funkce Instr vrací 0, pokud řetězec není nalezen (důležité, jak uvidíme dále).

Kód:

Dim stav jako řetězec
stát = "Florida"
MsgBox InStr (stav, „my“)

Výsledek:

Závěr: řetězec „nás“ nebyl nalezen.

Instr a If

Pojďme vytvořit jednoduchý program VBA, který používá Instr funkce.

Kód:

Dim stav jako řetězec, podřetězec jako řetězec
state = Range ("A2"). Hodnota
podřetězec = Rozsah ("B2"). Hodnota
Pokud InStr (stav, podřetězec)> 0 Pak
Rozsah ("C2"). Hodnota = "Nalezeno"
Jiný
Rozsah („C2“). Hodnota = „Nenalezeno“
Konec If

Výsledek po kliknutí na příkazové tlačítko na listu:

Vysvětlení: řetězec "outh" nalezen na pozici 2. Funkce Instr vrací 2. Výsledkem je, že Excel VBA umístí řetězec "Found" do buňky C2.

Hledání nerozlišuje velká a malá písmena

Ve výchozím nastavení provádí funkce Instr vyhledávání rozlišující malá a velká písmena. Do buňky B2 zadejte řetězec „dakota“ a klikněte na příkazové tlačítko na listu.

Vysvětlení: řetězec „dakota“ nebyl nalezen (první písmeno není velké). Funkce Instr vrací 0. Výsledkem je, že Excel VBA umístí řetězec „Nenalezeno“ do buňky C2.

Chcete-li provést vyhledávání bez rozlišování malých a velkých písmen, aktualizujte kód následujícím způsobem:

Dim stav jako řetězec, podřetězec jako řetězec
state = Range ("A2"). Hodnota
podřetězec = Rozsah ("B2"). Hodnota
Pokud InStr (1, state, substring, vbTextCompare)> 0 Then
Rozsah ("C2"). Hodnota = "Nalezeno"
Jiný
Rozsah („C2“). Hodnota = „Nenalezeno“
Konec If

Výsledek po kliknutí na příkazové tlačítko na listu:

Vysvětlení: Výše ​​zobrazená funkce Instr má 4 argumenty. Chcete-li provést vyhledávání nerozlišující malá a velká písmena, vždy zadejte počáteční pozici (první argument) a použijte vbTextCompare (čtvrtý argument).

Vám pomůže rozvoji místa, sdílet stránku s přáteli

wave wave wave wave wave