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).