Returnează o valoare variant (lungă) specificând poziția primei ocurențe a unui șir în cadrul altui șir.
Sintaxă
InStr ([start, ] șir1, șir2 [, comparare ] )
Sintaxa funcției InStr are următoarele argumente:
Argument |
Descriere |
---|---|
început |
Opțional. Expresie numerică care setează poziția de început pentru fiecare căutare. Dacă este omisă, căutarea începe la poziția primului caracter. Dacă start conține Nul, apare o eroare. Argumentul start este necesar dacă se specifică compararea . |
șir1 |
Obligatoriu. Expresia șir în care se caută. |
șir2 |
Obligatoriu. Expresia șir căutată. |
Compara |
Opțional. Specifică tipul de comparație șiruri. Dacă compare este Null, apare o eroare. Dacă comparare este omisă, setarea Comparareopțiuni determină tipul de comparație. Specificați un LCID valid (LocaleID) 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 argumentelor de comparare sunt:
Constantă |
Valoare |
Descriere |
---|---|---|
vbUseCompareOption |
-1 |
Efectuează o comparație utilizând setarea instrucțiunei Comparare opțiuni . |
vbBinaryCompare |
0 |
Efectuează o comparație binară. |
vbTextCompare |
1 |
Efectuează o comparație textuală. |
Valori returnate
If |
InStr returnează |
---|---|
șir1 este de lungime zero |
0 |
șir1 este Null |
Nul |
șir2 este de lungime zero |
început |
șir2 este Null |
Nul |
șir2 nu s-a găsit |
0 |
șir2 se găsește în șir1 |
Poziția în care se găsește potrivirea |
pornire > șir2 |
0 |
Observații
Funcția InStrB este utilizată cu datele byte conținute într-un șir. În loc să returneze poziția caracterului primei apariții a unui șir în interiorul altuia, InStrB întoarce poziția octetului.
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-l găsi, astfel:
InStr(1,[ADRESĂPO],".")
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ă la ieșirea funcției InStr , pentru a extrage porțiunea de adresă IP care precedă prima perioadă, astfel:
Left([IPAddress],(InStr(1,[IPAddress],".") -1))
În acest exemplu, InStr(1,[ADRESĂ IP],".") returnează poziția primei perioade. Scăderea numărului 1 determină câte caractere preced prima perioadă, în acest caz, 2. Funcția Left extrage apoi că multe caractere din partea stângă a câmpului IPAddress returnează valoarea 10.
Utilizarea InStr în codul VBA
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 apariții a unui șir în interiorul 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.