Funkcia InStr

Vráti hodnotu typu Variant (Long), ktorá určuje pozíciu prvého výskytu jedného reťazca v druhom.

Pozrite si niekoľko príkladov

Syntax

InStr ([začiatok, ] reťazec1, reťazec2 [, porovnať ] )

Syntax funkcie InStr má tieto argumenty:

Argument

Popis

začiatok

Voliteľný argument. Numerický výraz, ktorý nastaví počiatočnú pozíciu pre každé hľadanie. Ak sa vynechá, hľadanie sa začne na pozícii prvého znaku. Ak argument začiatok obsahuje hodnotu Null, vyskytne sa chyba. Argument začiatok je povinný, ak je zadaný argument porovnať.

reťazec1

Povinný argument. Vyhľadávaný reťazcový výraz.

reťazec2

Povinný argument. Hľadaný reťazcový výraz.

porovnať

Voliteľný argument. Určuje typ porovnania reťazcov. Ak má argument porovnať hodnotu Null, vyskytne sa chyba. Ak sa argument porovnať vynechá, na určenie typu porovnania sa použije nastavenie príkazu OptionCompare. Ak chcete v porovnaní použiť pravidlá špecifické pre určité miestne nastavenia, zadajte príslušnú platnú identifikáciu LCID (LocaleID).

Tip : V Accesse 2010 je súčasťou zostavovača výrazov funkcia IntelliSense, vďaka ktorej vidíte, ktoré argumenty sa vo výraze vyžadujú.

Nastavenia

Nastavenia argumentu compare sú:

Konštanta

Hodnota

Popis

vbUseCompareOption

-1

Vykonáva porovnanie pomocou nastavenia príkazu Option Compare.

vbBinaryCompare

0

Vykonáva porovnanie na základe binárnych údajov.

vbTextCompare

1

Vykonáva textové porovnanie.

vbDatabaseCompare

2

Len pre Microsoft Office Access 2007. Vykonáva porovnanie na základe informácií v databáze.


Vrátené hodnoty

Ak

Funkcia InStr vráti

reťazec1 má nulovú dĺžku

0

reťazec1 má hodnotu Null

Null

reťazec2 má nulovú dĺžku

začiatok

reťazec2 má hodnotu Null

Null

reťazec2 sa nenašiel

0

reťazec2 sa nachádza v reťazci1

Pozícia, v ktorej sa našla zhoda

začiatok > reťazec2

0


Poznámky

V prípade bajtových údajov obsiahnutých v reťazci použite funkciu InStrB. Funkcia InStrB namiesto vrátenia pozície znaku prvého výskytu jedného reťazca v druhom vráti bajtovú pozíciu.

Príklady

Použitie funkcie InStr vo výraze    Funkciu InStr môžete použiť všade tam, kde môžete použiť výrazy. Ak chcete napríklad nájsť pozíciu prvej bodky (.) v poli obsahujúcom IP adresy (s názvom IPadresa), môžete ju nájsť pomocou funkcie InStr napríklad takto:

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

Funkcia InStr preskúma všetky hodnoty v poli IPadresa a vráti pozíciu prvej bodky. Preto ak je prvá časť IP adresy 10., funkcia vráti hodnotu 3.

Potom môžete extrahovať časť IP adresy nachádzajúcu sa pred prvou bodkou použitím iných funkcií, ktoré spracujú výstup funkcie InStr, napríklad:

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

V tomto príklade funkcia InStr(1,[IPadresa],".") vráti pozíciu prvej bodky. Odčítanie hodnoty 1 určuje, koľko znakov sa nachádza pred prvou bodkou, čiže v tomto prípade to budú 2 znaky. Funkcia Left potom extrahuje tento počet znakov z ľavej časti hodnoty v poli IPAdresa a vráti hodnotu 10.

Použitie funkcie InStr v kóde VBA    

Poznámka : Nasledujúce príklady ukazujú použitie tejto funkcie v module jazyka Visual Basic for Applications (VBA). Ak chcete získať ďalšie informácie o práci s jazykom VBA, vyberte z rozbaľovacieho zoznamu vedľa položky Hľadať možnosť Odkaz pre vývojára a do vyhľadávacieho poľa zadajte nejaké výrazy.

V tomto príklade je funkcia InStr použitá na vrátenie pozície prvého výskytu jedného reťazca v druhom.

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.
Rozšírte svoje zručnosti
Preskúmať školenie
Buďte medzi prvými, ktorí získajú nové funkcie
Pridajte sa k insiderom pre Office

Boli tieto informácie užitočné?

Ďakujeme za vaše pripomienky!

Ďakujeme vám za pripomienky. Pravdepodobne vám pomôže, ak vás spojíme s pracovníkom podpory pre Office.

×