Връща стойност от тип Variant (Long), указваща позицията на първата поява на един низ в друг.
Синтаксис
InStr ([начало, ] низ1, низ2 [, сравнение ] )
Синтаксисът на функцията InStr има следните аргументи:
Аргумент |
Описание |
---|---|
начало |
Незадължително. Числов израз, който задава началната позиция за всяко търсене. Ако се пропусне, търсенето започва от позицията на първия знак. Ако начало съдържа Null, възниква грешка. Аргументът начало е задължителен, ако сте указали сравнение. |
низ1 |
Задължително. Израз във формата на низ, който се търси. |
низ2 |
Задължително. Търсен израз във формата на низ. |
сравнение |
Незадължително. Задава типа на сравнение на низове. Ако сравнение е Null, възниква грешка. Ако сравнение е пропуснато, настройката OptionCompare определя типа на сравнението. Задайте валиден LCID (LocaleID), за да използвате специфични за езиковата променлива правила за сравнение. |
Съвет: Конструкторът на изрази има IntelliSense, така че можете да видите какви аргументи изисква вашият израз.
Настройки
Настройките за аргументи за сравнение са:
Константа |
Value |
Описание |
---|---|---|
vbUseCompareOption |
-1 |
Извършва сравнение с помощта на настройката на командата Option Compare . |
vbBinaryCompare |
0 |
Извършва двоично сравнение. |
vbTextCompare |
1 |
Извършва текстово сравнение. |
Върнати стойности
If |
InStr връща |
---|---|
string1 е с нулева дължина |
0 |
string1 е Null |
Null |
string2 е с нулева дължина |
начало |
низ2 е Null |
Null |
не е намерен низ2 |
0 |
низ2 е намерен в низ1 |
Позиция, в която е намерено съвпадение |
начало > низ2 |
0 |
Забележки
Функцията InStrB се използва с байтове данни, съдържащи се в низ. Вместо да връща позицията на знака на първото появяване на един низ в друг, InStrB връща позицията на байтовете.
Примери
Използване на функцията InStr в израз Можете да използвате InStr навсякъде, където можете да използвате изрази. Ако например искате да намерите позицията на първия период (.) в поле, което съдържа IP адреси (наречени IPAddress), можете да използвате InStr , за да го намерите, ето така:
InStr(1;[IPAddress];".")
Функцията InStr изследва всяка стойност в полето IPAddress и връща позицията на първия период. Следователно, ако първата част от IP адреса е 10., функцията връща стойността 3.
След това можете да използвате други функции, работещи с изхода от функцията InStr , за да извлечете частта от IP адреса, който предхожда първия период, ето така:
Left([IPAddress],(InStr(1;[IPAddress];".") -1))
В този пример InStr(1;[IPAddress];".") връща позицията на първия период. Изваждането на 1 определя колко знака предшестват първия период, в този случай 2. След това функцията Left извлича толкова знаци от лявата част на полето IPAddress, връщайки стойността 10.
Използване на InStr във VBA код
Забележка: Примерите по-долу илюстрират използването на тази функция във Visual Basic for Applications (VBA).
Този пример използва функцията InStr , за да върне позицията на първото появяване на един низ в друг.
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.