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 a șirurilor. Dacă compare este Null, apare o eroare. Dacă comparare este omisă, setarea OptionCompare 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 | Începe |
| ș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 (numite 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.