Vrátí hodnotu typu Variant (Long) určující pozici prvního výskytu jednoho řetězce v jiném řetězci.

Tady je několik příkladů

Syntaxe

InStr ([start; ] string1, string2 [; compare ] )

Syntaxe funkce InStr má tyto argumenty:

Argument

Popis

začátek

Nepovinný argument. Číselný výraz, který nastavuje počáteční pozici pro každé hledání. Pokud je vynechán, začne hledání na první pozici znaku. Pokud start obsahuje hodnotu Null, dojde k chybě. Argument start je povinný, pokud je zadán parametr compare .

řetězec1

Povinný argument. Řetězcový výraz, který se hledá.

řetězec2

Povinný argument. Řetězcový výraz hledá.

Porovnat

Nepovinný argument. Určuje typ Porovnání řetězců. Pokud je hodnota compare null, dojde k chybě. Pokud je parametr compare vynechán, určuje typ porovnání nastavení Porovnání možností. Zadejte platný identifikátor LCID (LocaleID) pro použití pravidel specifických pro národní prostředí v porovnání.

Tip: Tvůrce výrazů má IntelliSense, takže uvidíte, jaké argumenty váš výraz vyžaduje.

Nastavení

Nastavení argumentu porovnání :

Konstanta

Value (Hodnota)

Description (Popis)

vbUseCompareOption

-1

Provede porovnání pomocí nastavení příkazu Porovnání možností .

vbBinaryCompare

0

Provede binární porovnání.

vbTextCompare

1

Provede textové porovnání.

Návratové hodnoty

Pokud

Vrátí inStr.

string1 má nulovou délku.

0

string1 má hodnotu Null.

Null

string2 má nulovou délku.

začátek

string2 má hodnotu Null.

Null

Řetězec2 se nenašel.

0

Řetězec2 se nachází v řetězci string1.

Pozice, na které se najde shoda

start > string2

0

Poznámky

Funkce InStrB se používá s bajtovými daty obsaženými v řetězci. Místo vrácení pozice znaku prvního výskytu jednoho řetězce v jiném vrátí InStrB pozici bajtu.

Příklady

Použití funkce InStr ve výrazu    InStr můžete použít všude tam, kde můžete použít výrazy. Například pokud chcete najít pozici prvního období (.) v poli, které obsahuje IP adresy (s názvem IPAddress), můžete k vyhledání použít InStr , například takto:

InStr(1;[IPAddress],".")

Funkce InStr prozkoumá každou hodnotu v poli IPAddress a vrátí pozici prvního období. Pokud je tedy první část IP adresy 10.vrátí funkce hodnotu 3.

Pak můžete pomocí jiných funkcí pracujících na výstupu funkce InStr extrahovat část IP adresy, která předchází prvnímu období, například takto:

Left([IPAddress],(InStr(1;[IPAddress],".") -1))

V tomto příkladu inStr(1;[IPAddress],".") vrátí pozici prvního období. Odčítání 1 určuje, kolik znaků předchází prvnímu období, v tomto případě 2. Funkce Left pak extrahuje z levé části pole IPAddress tolik znaků a vrátí hodnotu 10.

Použití inStr v kódu jazyka VBA    

Poznámka: Následující příklady ukazují použití této funkce v modulu VBA (Visual Basic pro Applications).

Tento příklad používá funkci InStr k vrácení pozice prvního výskytu jednoho řetězce v jiném.

Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"    ' String to search in.
SearchChar = "P"    ' Search for "P".
' A textual comparison starting at position 4. Returns 6.
MyPos = Instr(4, SearchString, SearchChar, 1)    
' A binary comparison starting at position 1. Returns 9.
MyPos = Instr(1, SearchString, SearchChar, 0)
' Comparison is binary by default
' (last argument is omitted).
MyPos = Instr(SearchString, SearchChar)    ' Returns 9.
MyPos = Instr(1, SearchString, "W")    ' Returns 0.

Viz také

Řetězcové funkce a jejich použití

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.