Връща стойност от тип Variant (Long), указваща позицията на първата поява на един низ в друг.
Синтаксис
InStr([начало, ] низ1, низ2 [, сравнение ] )
Синтаксисът на функцията InStr има следните аргументи:
| Аргумент | Описание |
|---|---|
| начало | Незадължително. Числов израз, който задава началната позиция за всяко търсене. Ако се пропусне, търсенето започва от позицията на първия знак. Ако "старт" съдържа Null, възниква грешка. Аргументът начало е задължителен, ако сте указали сравнение. |
| низ1 | Задължително. Низов израз, който е обект на търсенето. |
| низ2 | Задължително. Търсен израз във формата на низ. |
| сравнение | Незадължително. Задава типа сравнение на низовете. Ако сравнение е Null, възниква грешка. Ако сравняване се пропусне, настройката OptionCompare определя типа на сравнението. Задайте валиден LCID (LocaleID), за да използвате специфични за езиковата променлива правила в сравнението. |
Съвет
Конструкторът на изрази съдържа IntelliSense, така че можете да видите какви аргументи изисква вашият израз.
Настройки
Настройките за аргументите за сравняване са:
| Константа | Стойност | Описание |
|---|---|---|
| vbUseCompareOption | -1 | Извършва сравнение, като използва настройката на командата Option Compare . |
| vbBinaryCompare | 0 | Извършва двоично сравнение. |
| vbTextCompare | 1 | Извършва текстово сравнение. |
Върнати стойности
| If | InStr връща |
|---|---|
| низ1 е с нулева дължина | 0 |
| низ1 е Null | Null |
| низ2 е с нулева дължина | "Старт" |
| низ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.