Vrátí hodnotu typu Variant (Long) určující pozici prvního výskytu jednoho řetězce v jiném řetězci.
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.