Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Поиск и замена в строке
Для поиска и замены в строке используются следующие функции:
InStr()
— ищет подстроку в строке. Возвращает номер позиции (значение типа ), с которой начинается вхождение подстроки в строку. Если подстрока в строку не входит, то возвращается значение0
. Формат функции:
InStr([<Начало>, ]<Строка>, <Подстрока>[, <Сравнение>])
Если начальная позиция не указана, то поиск будет производиться с начала строки. Если указан параметр <Сравнение>
, то обязательно должен быть указан и параметр <Начало>
. Пример:
Debug.Print InStr("пример пример Пример", "при") ' 1
Debug.Print InStr("пример пример Пример", "тест") ' 0
Debug.Print InStr(5, "пример пример Пример", "при") ' 8
Параметр <Сравнение>
задает способ сравнения. Можно указать следующие константы (или соответствующие им значения):
vbBinaryCompare
—0
— двоичное сравнение. Сравнение зависит от регистра символов;vbTextCompare
—1
— текстовое сравнение. Регистр символов при сравнении не учитывается.
Если параметр <Сравнение>
не указан, то по умолчанию сравнение зависит от значения инструкции Option Compare
, которая должна быть расположена в самом начале модуля. Если инструкция имеет значение Binary
(или инструкция не указана), то используется двоичное сравнение, а если Text
— то текстовое сравнение. Пример:
Debug.Print InStr("пример пример Пример", "При")
' 15 (если Option Compare Binary)
' 1 (если Option Compare Text)
Debug.Print InStr(1, "пример Пример", "При", vbBinaryCompare)
' 8
Debug.Print InStr(1, "пример Пример", "При", vbTextCompare) ' 1
InStrRev()
— функция аналогична функцииInStr()
, но поиск производится с конца строки. Иными словами, функцияInStrRev()
возвращает позицию последнего вхождения подстроки в строку. Обратите внимание на то, что формат функцииInStrRev()
отличается от формата функцииInStr()
порядком следования параметров:
InstrRev(<Строка>, <Подстрока>[, <Начало>[, <Сравнение>]])
Если начальная позиция не указана, то используется значение -1
, которое означает, что поиск будет производиться с конца строки. Пример:
Debug.Print InStrRev("Пример пример", "при") ' 8
Debug.Print InStrRev("Пример пример", "При")
' 1 (если Option Compare Binary)
' 8 (если Option Compare Text)
Debug.Print InStrRev("Пример пример", "тест") ' 0
Debug.Print InStrRev("Пример пример", "при", 12) ' 8
Debug.Print InStrRev("Пример пример", "При", -1, vbBinaryCompare)
' 1
Debug.Print InStrRev("Пример пример", "При", -1, vbTextCompare)
' 8
Replace()
— производит замену всех вхождений подстроки в строку на другую подстроку и возвращает результат в виде новой строки. Формат функции:
Replace(<Строка>, <Подстрока для замены>, <Новая подстрока>[,
<Начало>[, <Максимальное количество замен>[,
<Сравнение>]]])
Если начальная позиция не указана, то поиск будет производиться с начала строки. Если параметр <Максимальное количество замен>
не указан, то используется значение -1
, которое означает, что лимит не используется. Параметр <Сравнение>
задает способ сравнения. Можно указать следующие константы (или соответствующие им значения):
vbBinaryCompare
—0
— двоичное сравнение. Сравнение зависит от регистра символов;vbTextCompare
—1
— текстовое сравнение. Регистр символов при сравнении не учитывается.
Если параметр <Сравнение>
не указан, то по умолчанию сравнение зависит от значения инструкции Option Compare
, которая должна быть расположена в самом начале модуля. Если инструкция имеет значение Binary
(или инструкция не указана), то используется двоичное сравнение, а если Text
— то текстовое сравнение. Пример:
Debug.Print Replace("Привет, Петя", "Петя", "Вася")
' Привет, Вася
Debug.Print Replace("Привет, Петя", "петя", "Вася")
' Привет, Петя (если Option Compare Binary)
' Привет, Вася (если Option Compare Text)
Debug.Print Replace("Привет, Петя", "петя", "Вася", , , _
vbBinaryCompare) ' Привет, Петя
Debug.Print Replace("Привет, Петя", "петя", "Вася", , , _
vbTextCompare) ' Привет, Вася
Debug.Print Replace("strstrstrstrstr", "str", "")
' Возвращается пустая строка
Debug.Print Replace("strstrstrstrstr", "str", "", 1, 3)
' strstr
Произвести замену позволяют также функции Mid()
и MidB()
, если они расположены слева от оператора присваивания. Подробное описание функций приведено в разд. 6.3. Пример:
Dim s As String
s = "строка"
Mid(s, 1, 1) = "7"
Debug.Print s ' 7трока
Помощь сайту
Yandex-деньги: 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов