Returnează o valoare variant (lungă) specificând poziția primei ocurențe a unui șir în cadrul altui șir.
Sintaxă
InStr([start, ] șir1, șir2 [, compară ] )
Sintaxa funcției InStr are următoarele argumente:
| Argument | Descriere |
|---|---|
| început | Opțional. Expresie numerică ce setează poziția de pornire pentru fiecare căutare. Dacă este omisă, căutarea începe la poziția primului caracter. Dacă start conține Nul, apare o eroare. Argumentul de pornire este necesar dacă se specifică compararea . |
| șir1 | Obligatoriu. Expresia șir în care se caută. |
| șir2 | Obligatoriu. Expresie șir căutată. |
| compară | Opțional. Specifică tipul de comparație a șirurilor. Dacă comparare este Nul, apare o eroare. Dacă comparare este omis, setarea OptionCompare determină tipul de comparație. Specificați un LCID (LocaleID) valid pentru a utiliza reguli specifice setărilor regionale în comparație. |
Sfat
Generatorul de expresii are IntelliSense, astfel încât să puteți vedea ce argumente necesită expresia dvs.
Setări
Setările de comparare a argumentelor sunt:
| Constantă | Valoare | Descriere |
|---|---|---|
| vbUseCompareOption | -1 | Efectuează o comparație utilizând setarea instrucțiunii Option Compare . |
| vbBinaryCompare | 0 | Efectuează o comparație binară. |
| vbTextCompare | 1 | Efectuează o comparație textuală. |
Valorile returnate
| If | InStr returnează |
|---|---|
| șir1 este de lungime zero | 0 |
| șir1 is Null | Nul |
| șir2 este de lungime zero | pornire |
| șir2 is Null | Nul |
| șir2 nu este găsit | 0 |
| șir2 se află în șir1 | Poziția la care se găsește potrivirea |
| start > string2 | 0 |
Observații
Funcția InStrB este utilizată cu datele byte dintr-un șir. În loc să returneze poziția de caracter a primei ocurențe a unui șir în cadrul altui șir, InStrB returnează poziția în octet.
Exemple
Utilizarea funcției InStr într-o expresie Puteți utiliza InStr oriunde puteți utiliza expresii. De exemplu, dacă doriți să găsiți poziția primei perioade (.) într-un câmp care conține adrese IP (denumit IPAddress), puteți utiliza InStr pentru a o găsi, astfel:
InStr(1,[IPAddress],".")
Funcția InStr examinează fiecare valoare din câmpul IPAddress și returnează poziția primei perioade. Prin urmare, dacă prima parte a adresei IP este 10., funcția returnează valoarea 3.
Apoi, puteți utiliza alte funcții, care operează pe rezultatul funcției InStr , pentru a extrage porțiunea adresei IP care precede prima perioadă, astfel:
Left([IPAddress],(InStr(1,[IPAddress],".")-1))
În acest exemplu, InStr(1,[IPAddress],".") Întoarce poziția primei perioade. Scăderea lui 1 determină câte caractere preced prima punctă, în acest caz, 2. Funcția Left extrage apoi același număr de caractere din partea stângă a câmpului IPAddress, returnând valoarea 10.
Use InStr in VBA code
Notă
Exemplele care urmează demonstrează utilizarea acestei funcții într-un modul Visual Basic for Applications (VBA).
Acest exemplu utilizează funcția InStr pentru a returna poziția primei ocurențe a unui șir în cadrul altui șir.
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.