Funkce InStr

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 obsahuje tyto argumenty:

Argument

Popis

začátek

Nepovinný argument. Číselný výraz, který nastaví počáteční pozici pro každé hledání. Pokud je tento znak vynechán, bude hledání zahájeno na pozici prvního znaku. Pokud start obsahuje hodnotu Null, dojde k chybě. Argument začátek je povinný v případě, že je zadaný argument porovnání.

Řetězec1

Povinný argument. Hledaný řetězcový výraz

Řetězec2

Povinný argument. Hledaní řetězcový výraz

porovnání

Nepovinný argument. Určuje typ Porovnání řetězců. Pokud je hodnota porovnání Null, dojde k chybě. Pokud porovnání vysíláte, určuje typ porovnání nastavení Option Compare. Zadejte platný identifikátor LCID (LocaleID), aby se v porovnání používají pravidla specifická pro národní prostředí.

Tip: V Accessu 2010 obsahuje Tvůrce výrazů technologii IntelliSense, takže vidíte, jaké argumenty výraz vyžaduje. 

Nastavení

Nastavení argumentů porovnání:

Konstanta

Hodnota

Popis

vbUseCompareOption

-1

Provede porovnání pomocí nastavení příkazu Option Compare.

vbBinaryCompare

0

Provede binární porovnání.

vbTextCompare

1

Provede textové porovnání.

vbDatabaseCompare

2

Microsoft Office Access 2007 jenom na to. Provede porovnání na základě informací v databázi.


Vrácené hodnoty

Pokud

Funkce InStr vrátí

Řetězec1 je nulová délka

0

Řetězec1 je Null.

Null

Řetězec2 je nulová délka

začátek

Řetězec2 je Null.

Null

Řetězec2 nebyl nalezen.

0

Řetězec2 je nalezen v řetězci1.

Umístění nalezené shody

start > string2

0


Poznámky

Funkce InStrB se používá s údaji o byte obsaženém v řetězci. Místo vrácení pozice znaku prvního výskytu jednoho řetězce v jiném řetězci vrátí Funkce InStrB pozici typu byte.

Příklady

Použití funkce InStr ve výrazu    Můžete použít InStr všude, kde můžete používat výrazy. Pokud například chcete najít pozici prvního období (.) v poli, které obsahuje IP adresy (pojmenované IPAddress), můžete ho najít pomocí funkce InStr, třeba takhle:

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

Funkce InStr prověří 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.

Potom můžete použít jiné funkce, které fungují na výstupu funkce InStr, k extrakci části IP adresy, která předchází prvnímu období, třeba takhle:

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

V tomto příkladu InStr(1,[IPAddress],".") vrátí pozici prvního období. Odečtení 1 určuje, kolik znaků předchází prvnímu období, v tomto případě 2. Funkce Left potom extrahuje z levé části pole IPAddress počet znaků a vrátí hodnotu 10.

Použití funkce 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). Pokud chcete další informace o práci s modulem VBA, vyberte Referenční informace pro vývojáře, které najdete v rozevíracím seznamu vedle položky Hledat a do vyhledávacího pole napište požadované pojmy.

V tomto příkladu se funkce InStr používá k vrácení pozice prvního výskytu jednoho řetězce v jiném řetězci.

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 taky

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

Potřebujete další pomoc?

Rozšiřte své dovednosti s Office
Projít školení
Získejte nové funkce jako první
Připojte se k účastníkům programu Office Insiders

Byly tyto informace užitečné?

Děkujeme vám za zpětnou vazbu.

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×