Разное

Vba поиск символа в строке: VBA Excel. Функция InStr (синтаксис, параметры, примеры)

Содержание

VBA Excel. Функция InStr (синтаксис, параметры, примеры)

Определение первого вхождения одной строки в другую с помощью функции InStr из кода VBA Excel. Синтаксис функции, параметры, примеры использования.

Описание функции InStr

InStr – это функция, которая предназначена для определения номера позиции первого вхождения одной строки в другую. Она возвращает значение типа Variant (Long).

Функция InStr ищет первое вхождение одной строки в другую с начала исходной строки. Для поиска первого совпадения с конца исходной строки используется функция InStrRev.

Функция InStr часто незаменима при определении параметров функций Left, Mid и Right. Также ее можно использовать для определения наличия искомой подстроки в заданной строке.

Еще есть в VBA Excel функция InStrB, которая работает с байтовыми данными, содержащимися в строке. Она возвращает позицию байта, а не символа первого вхождения одной строки в другую. Смотрите ниже Пример 3.

Синтаксис, параметры, значения

Синтаксис функции InStr

Полный вариант:

InStr([start], string1, string2, [compare])

Сокращенный вариант:

InStr(string1, string2)

Чаще всего в VBA Excel используется сокращенный вариант функции со значениями необязательных параметров по умолчанию.

Параметры функции InStr

ПараметрОписаниеЗначение по умолчанию
startНеобязательный аргумент.* Числовое выражение, которое задает начальную позицию для поиска.1
string1Обязательный аргумент. Строковое выражение, в котором выполняется поиск.
string2Обязательный аргумент. Искомое строковое выражение.
compareНеобязательный аргумент.
Задает тип сравнения строк.
–1**

* Если задан аргумент compare, аргумент start является обязательным.
** Если аргумент compare не указан, используется значение инструкции Option Compare, заданное на уровне модуля. Если инструкция Option Compare в начале модуля отсутствует, используется ее значение по умолчанию – 0 (двоичное сравнение).

Если параметр start или параметр compare содержит значение NULL, возникает ошибка.

Значения аргумента «compare»

КонстантаЗначениеОписание
vbUseCompareOption-1Сравнение с помощью параметра инструкции Option Compare.
vbBinaryCompare0Двоичное (бинарное) сравнение.*
vbTextCompare1Текстовое сравнение.*
vbDatabaseCompare 2Сравнение на основе сведений из базы данных. Только для Microsoft Access.

* При двоичном сравнении учитывается регистр букв, при текстовом – не учитывается.

Значения функции InStr

ЕслиВозвращаемое значение
string2 найдена в string1Позиция первого найденного соответствия.
string2 не найдена в string10
string2 является пустойstart
string2 равна NullNull
string1 является пустой0
string1 равна NullNull
start больше длины string10

Примеры использования в VBA Excel

Пример 1

Самый простой пример:

1

2

3

4

5

6

Sub Test1()

Dim x As Variant

x = InStr(«На горе Фернандо-По, где гуляет Гиппо-по», «Фернандо»)

MsgBox x

‘Здесь x будет равен 9

End Sub

Пример 2

В этом примере, используя одинаковые строки, в которых выполняется поиск, и искомые подстроки, применим разные виды сравнения – двоичное (бинарное) и текстовое, и посмотрим на результаты.

1

2

3

4

5

6

7

8

9

Sub Test2()

Dim x As Variant

x = InStr(10, «На горе Фернандо-По, где гуляет Гиппо-по», «по», 0)

MsgBox x

‘Здесь x будет равен 36 (поиск с учетом регистра символов)

x = InStr(10, «На горе Фернандо-По, где гуляет Гиппо-по», «по», 1)

MsgBox x

‘Здесь x будет равен 18 (поиск без учета регистра символов)

End Sub

Обратите внимание: несмотря на то, что начало поиска мы задали с 10 символа, номер позиции первого вхождения считается с начала строки, в которой выполняется поиск.

Пример 3

В этом примере посмотрим на результаты посимвольного и побайтового сравнения, опять же используя одинаковые строки и искомые подстроки.

1

2

3

4

5

6

7

8

9

Sub Test3()

Dim x As Variant

x = InStr(«На горе Фернандо-По, где гуляет Гиппо-по», «гор»)

MsgBox x

‘Здесь x будет равен 4

x = InStrB(«На горе Фернандо-По, где гуляет Гиппо-по», «гор»)

MsgBox x

‘Здесь x будет равен 7

End Sub

Результат 7 при побайтовом сравнении получен для кодировки, у которой один символ составляет 2 байта.


Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.

Функция InStr (Visual Basic для приложений)

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Возвращает значение типа Variant (Long), определяющее положение первого вхождения одной строки в другую.

Примечание

Хотите создавать решения, которые расширяют возможности Office на разнообразных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любую технологию веб-программирования, например HTML5, JavaScript, CSS3 и XML.

Синтаксис

InStr([ начало ], строка1, строка2, [ сравнение ])

В синтаксисе функции InStr используются следующие аргументы:

ЧастьОписание
началоНеобязательно. Числовое выражение, которое задает начальную точку для поиска. Если этот аргумент опущен, поиск начинается с первого знака строки. Если аргумент начало содержит значение Null, возникает ошибка. Аргумент начало является обязательным, если задан аргумент сравнение.
строка1Обязательно. Строковое выражение, поиск в котором выполняется.
строка2Обязательно. Искомое строковое выражение.
сравнениеНеобязательно. Определяет тип сравнения строк. Если аргумент сравнение содержит значение Null, возникает ошибка. Если аргумент сравнение опущен, тип сравнения определяется параметром Option Compare
. Укажите допустимый LCID (код языка), чтобы использовать для сравнения правила, определяемые языковым стандартом.

Параметры

Аргумент сравнение может принимать следующие значения:

КонстантаЗначениеОписание
vbUseCompareOption–1Выполняется сравнение с помощью параметра оператора Option Compare.
vbBinaryCompare0Выполняется двоичное сравнение.
vbTextCompare1Выполняется текстовое сравнение.
vbDatabaseCompare2Только Microsoft Access. Выполняется сравнение на основе сведений из базы данных.

Возвращаемые значения

ЕслиВозвращаемое значение
строка1 является пустой0
строка1 равна NullNull
строка2 является пустойначало
строка2 равна NullNull
строка2 не найдена0
строка2 найдена в строке1Позиция найденного соответствия
начало > строка20

Функция InStrB используется с байтовыми данными, содержащимися в строке. Функция InStrB возвращает позицию байта, а не позицию знака первого вхождения одной строки в другую.

Пример

В данном примере функция 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.

См. также

  • Функции (Visual Basic для приложений)

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Извлекаем символы из строк в Excel с помощью функций руководство для чайников

Функция VBA InStr является одной из наиболее часто используемых функций в VBA. Он используется для нахождения текста внутри строки и действительно отлично справляется с работой.

Тем не менее, она часто используется, чтобы помочь извлечь часть строки, и эту задачу она выполняет плохо.

Если вы обнаружили, что извлечение текста в VBA является болезненным процессом, тогда читайте дальше. Эта статья покажет вам более простой и лучший способ, используя три реальных примера!

Содержание

  1. Краткое руководство к статье
  2. Краткая справка
  3. Введение
  4. Когда VBA InStr, Left, Right и Mid полезны
  5. Работа со строками различной длины
  6. Использование функции VBA InStr с Mid
  7. Функция Split
  8. Пример 1: Получение части имени файла
  9. Пример 2: диапазон IP-адресов
  10. Пример 3. Проверьте правильность имени файла
  11. Заключение

В следующей таблице приведено краткое руководство к тому, что рассматривается в этой статье.

СтрокаТипЗадачаКак
1234ABC334Фиксированный размерОставить слева 4 символаLeft(s,4)
1234ABC334Фиксированный размерОставить
справа 3
символа
Right(s,3)
1234ABC334Фиксированный размерОставить 5, 6, 7 символыMid(s,5,3)
«Иван
Петрович
Сидоров»
Переменный
размер
Оставить имяSplit(s,» «)(0)
«Иван
Петрович
Сидоров»
Переменный
размер
Оставить
отчество
Split(s,» «)(1)
«Иван
Петрович
Сидоров»
Переменный
размер
Оставить
фамилию
Split(s,» «)(2)
«Иван
Петрович
Сидоров»
Переменный
размер

Оставить
фамилию
Dim v As
Variant
v = Split(s, » «)
lastname= v(UBound(v))

Краткая справка

Чтобы узнать больше об элементах, упомянутых в статье, перейдите по следующим ссылкам:

  • Если вы хотите узнать больше о функциях InStr или InStrRev, пожалуйста, прочитайте Поиск в строке.
  • Если вы хотите узнать больше о функциях Mid, Left или Right, посмотрите раздел Извлечение части строки.
  • Для получения дополнительной информации о функции Split проверьте Строка в массив, используя Split.
  • Оператор Like включен в Сравнение строк с шаблоном

Я использую Debug.Print в моих примерах. Он печатает значения в Immediate Window, которое вы можете просмотреть, нажав Ctrl + G (или выберите View-> Immediate Window)

Введение

В этой статье я собираюсь показать вам лучший способ извлечения символов из строки, чем использование функции VBA InStr с Left, Right или Mid.

Эта статья разбита следующим образом:

  • Раздел 1: Как извлечь из строк фиксированного размера.
  • Раздел 2: Как извлечь из строк переменного размера.
  • Раздел 3: Как извлечь из строки переменного размера, используя функцию Split.
  • Разделы с 4 по 6: некоторые примеры из реальной жизни.

Когда VBA InStr, Left, Right и Mid полезны

Если вы хотите проверить, содержит ли строка значение, InStr подходит для этой работы. Если вы хотите сделать простое извлечение, то отлично подойдут Left, Right и Mid.

Использование InStr для проверки, содержит ли строка текст

В следующем примере мы проверяем, содержит ли ФИО «Петрович». Если возвращаемое значение InStr больше нуля, то строка содержит значение, которое мы проверяем.

' Проверьте, содержит ли строка Петрович
    If InStr("Иван Петрович Сидоров", "Петрович") > 0 Then
        Debug.Print "Найдено"
    End If

Извлечение с Left, Right и Mid

Функция Left используется для получения символов слева от строки.
Функция Right используется для получения символов справа от строки.
Функция Mid используется для середины строки. Она такая же, как
Left, за исключением того, что вы даете ему стартовую позицию.

Sub IzvlechTekst()
    Dim s As String: s = "ABCD-7789.WXYZ"
    Debug.Print Left(s, 2) ' Печатает AB
    Debug.Print Left(s, 4) ' Печатает ABCD
    Debug.Print Right(s, 2) ' Печатает YZ
    Debug. Print Right(s, 4) ' Печатает WXYZ
    Debug.Print Mid(s, 1, 2) ' Печатает AB
    Debug.Print Mid(s, 6, 4) ' Печатает 7789
End Sub

Эти три функции работают нормально, если требуемый текст всегда одинакового размера и в одном и том же месте. Для других сценариев они требуют использования InStr, чтобы найти определенную позицию в строке. Это усложняет их использование.

Используйте Left, Right или Mid, когда символы всегда будут в одной и той же позиции.

Работа со строками различной длины

Многие из строк, с которыми вы имеет дело, разной длины. Простой пример — когда у вас есть дело со списком имен. Длина строки и требуемая часть (например, имя) могут каждый раз отличаться. Например:

Brooke Hilt
Pamela Jurado
Zack Kinzel
Eddy Wormley
Kaitlyn Rainer
Jacque Trickett
Kandra Stanbery
Margo Hoppes
Berenice Meier
Garrett Hyre

(Если вам нужен случайный список имен, попробуйте этот генератор случайных имен)

Использование функции VBA InStr с Left

В следующем примере мы собираемся получить имя из строки. В этой строке первое имя — это имя перед первым пробелом.

Мы используем функцию VBA InStr, чтобы получить позицию первого пробела. Мы хотим получить все символы до пробела. Мы вычитаем одну из позиции, так как это дает нам позицию последней буквы имени.

Sub PoluchitImya()
    Dim s As String, lPosition As Long
    s = "John Henry Smith"
    ' Печатает John
    lPosition = InStr(s, " ") - 1
    Debug.Print Left(s, lPosition)
    s = "Lorraine Huggard"
    ' Печатает Lorraine
    lPosition = InStr(s, " ") - 1
    Debug.Print Left(s, lPosition)
End Sub

Давайте посмотрим на первый пример в приведенном выше коде. Первый пробел находится в позиции 5. Мы вычтем 1, что дает нам позицию 4. Это позиция последней буквы John, т.е.

Затем мы даем 4 функции Left, и она возвращает первые четыре символа, например, «John»

Мы можем выполнить ту же задачу в одной строке, передав возвращаемое значение из InStr в функцию Left.

 Dim s As String
    s = "John Henry Smith"
    ' Печатает John
    Debug. Print Left(s, InStr(s, " ") - 1)

Использование функции VBA InStr с Right

В этом примере мы получим последнее слово в строке, то есть Smith. Мы можем использовать функцию InStrRev. Это то же самое, что InStr, за исключением того, что поиск выполняется с конца строки.

Важно отметить, что InStrRev дает нам позицию с начала строки. Поэтому нам нужно использовать его немного иначе, чем мы использовали InStr и Left.

Sub PoluchitFamiliyu()
    Dim s As String: s = "John,Henry,Smith"
    Dim Position As Long, Length As Long
    Position = InStrRev(s, ",")
    Length = Len(s)
    ' Печатает Smith
    Debug.Print Right(s, Length - Position)
    ' Альтернативный метод. Печатает Smith - делает в одну строку
    Debug.Print Right(s, Len(s) - InStrRev(s, ","))
End Sub

Как работает приведенный выше пример:

  • Мы получаем позицию последнего пробела, используя InStrRev: 11
  • Мы получаем длину строки: 16.
  • Вычитаем позицию из длины: 16-11 = 5
  • Мы даем 5 функции Right и возвращаем Smith

Использование функции VBA InStr с Mid

В следующем примере мы получим «Henry» из строки. Слово, которое мы ищем, находится между первым и вторым пробелом.

Мы будем использовать функцию Mid здесь.

Sub PoluchitVtoroeImya()
    Dim s As String: s = "John Henry Smith"
    Dim firstChar As Long, secondChar As Long
    Dim count As Long
    ' Найти пробел плюс 1. Результат 6
    firstChar = InStr(s, " ") + 1
    ' Найти 2-й пробел. Результат 11
    secondChar = InStr(firstChar, s, " ")
    ' Получить число символов. Результат 5
    count = secondChar - firstChar
    ' Печатает Henry
    Debug.Print Mid(s, firstChar, count)
End Sub

Как видите, это сложно сделать и требует немного усилий, чтобы выяснить. Нам нужно найти первое место. Тогда нам нужно найти второе место. Затем мы должны вычесть одно из другого, чтобы дать нам количество символов, которые нужно взять.

Если у вас есть строка с большим количеством слов, то это может быть очень сложно. К счастью для нас, гораздо проще было извлечь символы из строки. Это называется функцией Split.

Функция Split

Мы можем использовать функцию Split для выполнения приведенных выше примеров. Функция Split разбивает строку на массив. Тогда мы можем легко получить доступ к каждому элементу.

Давайте попробуем те же три примера еще раз, и на этот раз мы будем использовать Split.

  Dim s As String: s = "John Henry Smith"
    Debug.Print Split(s, " ")(0) ' John
    Debug.Print Split(s, " ")(1) ' Henry
    Debug.Print Split(s, " ")(2) ' Smith

Ого! Какая разница с использованием Split. Как это работает:

  1. Функция Split разбивает строку везде, где есть пробел.
  2. Каждый элемент помещается в массив, начиная с нуля.
  3. Используя номер местоположения, мы можем получить доступ к элементу массива.  

В следующей таблице показано, как может выглядеть массив после использования Split.

Примечание: первая позиция в массиве равна нулю. Наличие нулевых массивов является стандартным в языках программирования.

012
JohnHenrySmith

В приведенном выше коде мы разделяем строку каждый раз, когда ее используем. Мы также можем разделить строку один раз и сохранить ее в переменной массива. Тогда мы можем получить к нему доступ, когда захотим.

Sub SplitName()
    Dim s As String: s = "John Henry Smith"
    Dim arr() As String
    arr = Split(s, " ")
    Debug.Print arr(0) ' John
    Debug.Print arr(1) ' Henry
    Debug.Print arr(2) ' Smith
End Sub

Если вы хотите узнать больше о массивах, я написал о них целую статью под названием «Полное руководство по использованию массивов в Excel VBA».

В следующих разделах мы рассмотрим примеры из реальной жизни. Вы увидите преимущество использования Split вместо функции InStr.

Пожалуйста, не стесняйтесь попробовать это сами. Это отличный способ учиться, и вы можете повеселиться, пытаясь понять их (или, может быть, только у меня так!)

Пример 1: Получение части имени файла

Представьте, что мы хотим извлечь числа из следующих имен файлов

«VB_23476_Val. xls»
«VV_987_Val.txt»
«VZZA_12223_Val.doc»

Это похоже на пример, где мы получаем второй элемент. Чтобы получить значения здесь, мы используем подчеркивание (то есть «_»), чтобы разбить строку. Смотрите пример кода ниже:

Sub PoluchitNomer()
    ' Печатает 23476
    Debug.Print Split("VB_23476_Val.xls", "_")(1)
    ' Печатает 987
    Debug.Print Split("VV_987_Val.txt", "_")(1)
    ' Печатает 12223
    Debug.Print Split("ABBZA_12223_Val.doc", "_")(1)
End Sub

В реальном мире вы обычно читаете такие строки из разных ячеек. Допустим, эти имена файлов хранятся в ячейках от А1 до А3. Мы немного изменим приведенный выше код:

Sub ChitatNomera()
    Dim c As Range
    For Each c In Range("A1:A3")
        ' Разделите каждый элемент по мере его прочтения
        Debug.Print Split(c, "_")(1)
    Next c
End Sub

Пример 2: диапазон IP-адресов

Пример здесь взят из вопроса на веб-сайте StackOverflow.

У пользователя есть строка с IP-адресом в формате «BE-ABCDDD-DDS 172. 16.23.3».

Он хочет, чтобы IP в диапазоне от 172,16 до 172,31 был действительным. Так например:

  • «BE-ABCDDD-DDS 172.16.23.3» действителен
  • «BE-ABCDDD-DDS 172.25.23.3» действителен
  • «BE-ABCDDED-DDS 172.14.23.3» не действителен
  • «BE-ABCDDDZZ-DDS 172.32.23.3» не действителен

Вот как бы я это сделал. Сначала я разбил строку по периодам. Число, которое мы ищем, находится между первым и вторым периодом. Поэтому это второй пункт. Когда мы разделяем строку, она помещается на первую позицию в массиве (помните, что массив начинается с нулевой позиции).

Полученный массив будет выглядеть так:

0123

BE-ABCDDD-DDS 172
31233

Код ниже показывает, как это сделать.

Sub IPAdd()
    ' Проверьте номер, чтобы проверить разные IP-адреса
    Dim s1 As String: s1 = "BE-ABCDDD-DDS 172.31.23.3"
    ' Разбить строку, используя символ точки
    Dim num As Long
    num = Split(s1, ". ")(1)
    ' Проверьте правильность номера
    Debug.Print num >= 16 And num <= 31
End Sub

Пример 3. Проверьте правильность имени файла

В этом последнем примере мы хотим проверить правильность имени файла. Есть три правила.

  1. Должно заканчиваться на .pdf
  2. Он должен содержать АА
  3. Он должен содержать 1234 после А

В следующих таблицах показаны некоторые допустимые и недействительные элементы:

Имя файлаСтатус
AA1234.pdfДействителен
AA_ljgslf_1234.pdfДействителен
AA1234.pdf1Недействительно — не заканчивается на .pdf
1234 AA.pdfНедействительно — АА не до 1234
12_AA_1234_NM.pdfДействителен

Сначала мы сделаем это, используя функции InStr и Right.

Sub IspInstr()
    Dim f As String: f = "AA_1234_(5). pdf"
    ' Сначала найдите АА, так как 1234 должен идти после
    Dim lPos As Long: lPos = InStr(f, "AA")
    ' Ищите 1234 и убедитесь, что последние четыре символа - .pdf
    Debug.Print InStr(lPos, f, "1234") > 0 And Right(f, 4) = ".pdf"
End Sub

Этот код очень грязный. К счастью для нас, у VBA есть Сравнение с шаблоном. Мы можем проверить шаблон строки без необходимости искать элементы и позиции и т.д. Мы используем оператор Like в VBA для сопоставления с шаблоном. Пример ниже показывает, как это сделать.

Sub IspSravnenie()
    Dim f As String: f = "AA_1234_(5).pdf"
    ' Определить шаблон
    Dim pattern As String: pattern = "*AA*1234*.pdf"
    ' Проверьте каждый элемент по шаблону
    Debug.Print f Like pattern   ' ИСТИНА
End Sub

В приведенном выше примере звездочка в шаблоне относится к любому количеству символов.

Давайте разберем этот паттерн * AA * 1234 * .pdf

*- любая группа символов
AA — точные символы AА

*- любая группа символов
1234 — точные символы 1234

*- любая группа символов
. pdf — точные символы .pdf

Чтобы показать, что это работает правильно, давайте попробуем это на всех именах примеров в таблице.

Sub IspSravnenieTest()
    ' Создать коллекцию имен файлов
    Dim coll As New Collection
    coll.Add "AA1234.pdf"
    coll.Add "AA_ljgslf_1234.pdf"
    coll.Add "AA1234.pdf1"
    coll.Add "1234 AA.pdf"
    coll.Add "12_AA_1234_NM.pdf"
    ' Определить шаблон
    Dim pattern As String: pattern = "*AA*1234*.pdf"
    ' Проверьте каждый элемент по шаблону
    Dim f As Variant
    For Each f In coll
        Debug.Print f Like pattern
    Next f
End Sub

На выходе:

ИСТИНА
ИСТИНА
ЛОЖЬ
ЛОЖЬ
ИСТИНА

Чтобы узнать больше о сопоставлении с шаблоном и ключевом слове Like, ознакомьтесь с этой публикацией.

Заключение

InStr и InStrRev действительно полезны только для простых задач, таких как проверка наличия текста в строке.

Left, Right и Mid полезны, когда положение текста всегда одинаково.

Функция Split — лучший способ извлечь переменную строку.

При попытке проверить формат строки, которая не является фиксированной по размеру, ключевое слово Like (т.е. Сопоставление с образцом) обычно обеспечивает более простое решение.

Функции VBA для работы с текстом

Главная » Функции VBA »

28 Апрель 2011       Дмитрий       343188 просмотров

  • ASC()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC("D") вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
    • AscB() — возвращает только первый байт числового кода для символа.
    • AscW() — возвращает код для символа в кодировке Unicode
  • Chr() — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — "), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.
        Dim sWord As String
        sWord = Chr(34) & "Слово в кавычках" & Chr(34)

    Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().

  • InStr() и InStrRev()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.
        Dim sStr As String
        sStr = "w"
        If InStr(1, "Hello, World!", sStr, vbTextCompare) > 0 Then
            MsgBox "Искомое слово присутствует!"
        Else
            MsgBox "Искомое слово отсутствует!"
        End If

    Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки

  • Left(), Right(), Mid()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.
        Dim sStr As String
        sStr = "Hello, World!"
        MsgBox Mid(sStr, 1, 5)
  • Len() — возможность получить число символов в строке. Часто используется с циклами, операциями замены и т.п.
  • LCase() и UCase() — перевести строку в нижний и верхний регистры соответственно. Часто используется для подготовки значения к сравнению, когда при сравнении регистр не важен (фамилии, названия фирм, городов и т.п.).
  • LSet() и RSet() — возможность заполнить одну переменную символами другой без изменения ее длины (соответственно слева и справа). Лишние символы обрезаются, на место недостающих подставляются пробелы.
  • LTrim(), RTrim(), Trim() — возможность убрать пробелы соответственно слева, справа или и слева, и справа.
  • Replace()— возможность заменить в строке одну последовательность символов на другую.
        Dim sStr As String
        sStr = "Hello, World!"
        MsgBox Replace(sStr, "Hello", "Bay")
  • Space() — получить строку из указанного вами количества пробелов;
    Еще одна похожая функция — Spc(), которая используется для форматирования вывода на консоль. Она размножает пробелы с учетом ширины командной строки.
  • StrComp() — возможность сравнить две строки.
  • StrConv() — возможность преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.):
        Dim sStr As String
        sStr = "Hello, World!"
        MsgBox StrConv("Hello, World!", vbUpperCase)

    В качестве второго параметра параметра могут применяться константы:

    • vbUpperCase: Преобразует все текстовые символы в ВЕРХНИЙ РЕГИСТР
    • vbLowerCase: Преобразует все текстовые символы в нижний регистр
    • vbProperCase: Переводит первый символ каждого слова в Верхний Регистр
    • *vbWide: Преобразует символы строки из однобайтовых в двухбайтовые
    • *vbNarrow: Преобразует символы строки из двухбайтовых в однобайтовые
    • **vbKatakana: Преобразует символы Hiragana в символы Katakana
    • **vbHiragana: Преобразует символы Katakana в символы Hiragana
    • ***vbUnicode: Преобразует строку в Юникод с помощью кодовой страницы системы по умолчанию
    • ***vbFromUnicode: Преобразует строку из Юникод в кодовую страницу системы по умолчанию
    • * применимо для локализацией Дальнего востока
      ** применимо только для Японии
      *** не поддерживается операционными системами под управлением Macintosh

  • StrReverse() — «перевернуть» строку, разместив ее символы в обратном порядке. Функция работает только начиная от Excel 2000 и выше. Пример использования функции, а так же иные методы переворачивания слова можно посмотреть в этой статье: Как перевернуть слово?
  • Tab() — еще одна функция, которая используется для форматирования вывода на консоль. Размножает символы табуляции в том количестве, в котором вы укажете. Если никакое количество не указано, просто вставляет символ табуляции. Для вставки символа табуляции в строковое значение можно также использовать константу vbTab.
  • String() — позволяет получить строку из указанного количества символов (которые опять-таки указываются Вами). Обычно используются для форматирования вывода совместно с функцией Len().

Статья помогла? Сделай твит, поделись ссылкой с друзьями!

© 2022 Excel для всех   Войти

Функция Excel VBA InStr — объяснение с примерами

Содержание

  • Функция Excel VBA InStr

Вчера я получил письмо от одного из моих читателей — Джун.

Она хотела знать, как применить жирный шрифт к определенной части строки в ячейке. Например, выделите жирным шрифтом только слово «Hello» из «Hello World».

И она хотела сделать это сразу для сотен ячеек.

Поскольку в Excel нет встроенных функций, которые могли бы это сделать, я создал простой макрос, который использует Функция Excel VBA InStr (вы увидите, как это сделать, в примере 4 этого руководства).

Но сначала давайте посмотрим, как работает функция Excel VBA InStr!

В этом руководстве я объясню использование функции InStr в Excel VBA и увижу несколько практических примеров, где ее можно использовать.

Функция Excel VBA InStr — Введение

Функция InStr находит позицию указанной подстроки в строке и возвращает первую позицию ее появления.

Например, если вы хотите найти положение «x» в «Excel», использование функции Excel VBA InStr вернет 2.

Синтаксис функции InStr

InStr ([Начало], String1, String2, [Сравнить])
  • [Начинать] — (необязательный аргумент) это целое число, которое сообщает функции InStr начальную позицию, с которой она должна начать поиск. Например, если я хочу, чтобы поиск начинался с самого начала, я введу значение 1. Если я хочу, чтобы он начинался с третьего символа и далее, я буду использовать 3. Если не указано, будет использовано значение по умолчанию 1.
  • Строка1 — Это основная строка (или родительская строка), в которой вы хотите выполнить поиск. Например, если вы ищете позицию x в Excel, строка 1 будет «Excel».
  • Строка2 — Это подстрока, которую вы ищете. Например, если вы ищете позицию x в Excel, String2 будет x.
  • [Сравнивать] — (необязательный аргумент) Вы можете указать одно из следующих трех значений для аргумента [сравнить]:
    • vbBinaryCompare — Это сделает персонажа путем сравнения символов. Например, если вы ищете «x» в «Excel», он вернет 2, но если вы ищете «X» в «Excel», он вернет 0, так как X в верхнем регистре. Вы также можете использовать 0 вместо vbBinaryCompare. Если аргумент [Сравнить] опущен, он используется по умолчанию.
    • vbTextCompare — Это будет текстовое сравнение. Например, если вы ищете «x» или «X» в Excel, в обоих случаях будет возвращено 2. Этот аргумент игнорирует регистр букв. Вы также можете использовать 1 вместо vbTextCompare.
    • vbDatabaseCompare — Используется только для Microsoft Access. Он использует информацию из базы данных для сравнения. Вы также можете использовать 2 вместо vbDatabaseCompare.
Дополнительные примечания к функции Excel VBA InStr:
  • InStr — это функция VBA, а не функция рабочего листа. Это означает, что вы не можете использовать его на рабочем листе.
  • Если String2 (то есть подстрока, позицию которой вы ищете) пуста, функция вернет значение аргумента [Start].
  • Если функция InStr не может найти подстроку в основной строке, она вернет 0.

Теперь давайте посмотрим на пример использования функции Excel VBA InStr.

Пример 1 — Поиск позиции с самого начала

В этом примере я буду использовать функцию InStr, чтобы найти позицию «V» в «Excel VBA» с самого начала.

Код для этого будет:

Sub FindFromBeginning () Dim Position As Integer Position = InStr (1, "Excel VBA", "V", vbBinaryCompare) MsgBox Position End Sub

Когда вы запустите этот код, он покажет окно сообщения со значением 7, которое является позицией «V» в строке «Excel VBA».

Пример 2 — Поиск позиции от начала второго слова

Предположим, я хочу найти позицию «the» в предложении — «Быстрая коричневая лисица перепрыгивает через ленивую собаку».

Однако я хочу, чтобы поиск начинался со второго слова и далее.

В этом случае нам нужно изменить аргумент [Start], чтобы убедиться, что он указывает позицию, с которой начинается второе слово.

Вот код, который это сделает:

Sub FindFromSecondWord () Dim Position As Integer Position = InStr (4, «Быстрая коричневая лиса перепрыгивает через ленивую собаку», «the», vbBinaryCompare) MsgBox Position End Sub

Этот код покажет окно сообщения со значением 32, поскольку мы указали начальную позицию как 4. Следовательно, он игнорирует первый «The» и находит второй «the» в предложении.

Если вы хотите сделать его более динамичным, вы можете улучшить код, чтобы он автоматически игнорировал первое слово.

Вот расширенный код, который сделает это:

Sub FindFromSecondWord () Dim StartingPosition как целое число Dim Position As Integer StartingPosition = InStr (1, «Быстрая коричневая лиса перепрыгивает через ленивую собаку», «», vbBinaryCompare) Position = InStr (StartingPosition, «Быстрая коричневая лиса перепрыгивает через ленивого dog "," the ", vbBinaryCompare) MsgBox Position End Sub

Этот код сначала находит позицию символа пробела и сохраняет ее в переменной StartingPosition.

Затем он использует эту переменную в качестве начальной позиции для поиска слова «the».

Следовательно, он возвращает 32 (что является начальной позицией «the» после первого слова).

Пример 3 — Определение позиции @ в адресе электронной почты

Вы можете легко создать настраиваемую функцию для поиска позиции @ в адресе электронной почты с помощью функции Excel VBA InStr.

Вот код для создания настраиваемой функции:

Функция FindPosition (Ref As Range) As Integer Dim Position As Integer Position = InStr (1, Ref, «@») FindPosition = Position End Function

Теперь вы можете использовать эту настраиваемую функцию как любую другую функцию рабочего листа. Он примет ссылку на ячейку в качестве входных данных и выдаст вам позицию @ в ней.

Точно так же вы можете создать настраиваемую функцию для поиска позиции любой подстроки в основной строке.

Пример 4 — Выделение части строки внутри ячеек

Это вопрос, который задал Джун (мой читатель, который также вдохновил меня на написание этого руководства).

Вот пример данных в формате, который мне прислал июнь:

Ее запрос заключался в том, чтобы выделить числа вне скобок жирным шрифтом.

Вот созданный мной код, который делает это:

Sub Bold () Dim rCell As Range Dim Char As Integer For Each rCell In Selection CharCount = Len (rCell) Char = InStr (1, rCell, "(") rCell. Characters (1, Char - 1) .Font.Bold = True Next rCell End Sub

В приведенном выше коде цикл For Each используется для просмотра каждой из выделенных ячеек. Он определяет позицию символа открывающей скобки с помощью функции InStr. Затем он изменяет шрифт текста перед скобкой.

Чтобы использовать этот код, вам нужно скопировать и вставить модуль в редакторе VB.

После того, как вы скопировали вставленный код, выберите ячейки, в которых вы хотите выполнить это форматирование, и запустите макрос (как показано ниже).

Вам также могут понравиться следующие руководства по Excel VBA:

  • Функция Excel VBA SPLIT.
  • Функция VBA TRIM.
  • Полное руководство по циклам Excel VBA.
  • Руководство для начинающих по использованию цикла For Next Loop в Excel VBA.
  • Как создать и использовать надстройку Excel.
  • Как объединить несколько книг в одну книгу Excel.
  • Как посчитать цветные ячейки в Excel.
  • Полезные примеры макросов Excel VBA для начинающих.
  • Как отсортировать данные в Excel с помощью VBA (пошаговое руководство)

Excel vba работа со строками

Функция InStr

​Смотрите также​
​ Else: MsgBox Mid(ProbeString,​

​ Exit Sub End​​ названием которого является​​ на одну и​​ Right$(о, 3) С_конца_буквы_1234_О​​о = «1234567891011»​lumn)​ String Dim Sum​​ поможем​​ Type mismatch,​ String a =​ события щелчка по​ вы ребята» должно​Возвращаемое значение​Option Compare​String2​InStr([Start,]String1,String2[,Compare])​ sympos) End Select​ If nstroka =​ год работы.​

​ ту же ошибку:​

​ = Right$(о, 4)​​ Буква_1_О = Left$(о,​​Я бы написал​ As Double Dim​KuklP​что понятно, т.к.​ Text1.Text b =​ кнопке и откроет​ получиться «еынссалк вы​Функция​vbBinaryCompare​найдена внутри​InStrB([Start,]String1,String2[,Compare])​

​ End Sub​

​ Right(stroka, (ls -​Заранее очень благодарен!​ «Ошибка времени выполнения​ С_конца_буквы_12345_О = Right$(о,​

​ 1) Буква_1_О_м =​

​ так Directory =​ ​ DirColumn As Double​
​: Кросс:​​ пытаетесь объединить строку​ ​ UCase(a) Text2. Text =​
​ окно кода формы​​ ребята».​ ​Str​
​0​​String1​ ​Функция​
​dashulja​​ index) + 1)​ ​Watcher_1​
​ Basic. Переменная типа​​ 5) С_конца_буквы_123456_О =​ ​ Mid$(о, 1, 1)​
​ Cells(7, DirColumn)​​ Application.Volatile True For​​http://www.excel-vba.ru/forum/index.php?topic=2491.0​ ​ (результат функции​ b End Sub​
​ с этой процедурой.​​Нужно и с​​(Expression) возвращает значение Number,​ ​Выполняется побитовое сравнение​

​Позиция, в которой обнаружено​

​InStr​ ​: Даны 3 строки​
​ MsgBox nstroka, vbInformation,​ ​: Держите​ Object не установлена»​ Right$(о, 6) С_конца_буквы_1234567_О​ Буква_2_я_О = Right$((Left$(о,​beryllium​ Each cell In​​beryllium​Replace​​ Программа записывает все​​ Вам остается только​ помошью Sub, и​​ преобразованное в текстовый​​vbTextCompare​​ совпадение​(​​ символов, содержащие пробелы.
​ «поиск в строке»​ ​IseeYOU​ на строчках соответственно​
​ = Right$(о, 7)​ ​ 2)), 1) Буква_3_я_О​
​: нда.. все печально​ ​ DirRange If cell​: Добрый день.​​), а не массив.​​ слова с заглавной​​ вписать туда строчки,​ с помощью Function.​​ тип данных String.​1​​Start​​In Str​ Вывести в столбцы​​ End SubМожно даже​

​: Огромное спасибо =)​

​ «For i =​​ С_конца_буквы_12345678_О = Right$(о,​​ = Right$((Left$(о, 3)),​

​. давно не кодил​ ​ = DirNumber Then​ ​Столкнулся со задачкой,​
​Без​ ​ (((​ ​ данные​Я знаю как​​При преобразовании в​
​Выполняется текстовое сравнение​ ​>​ ​ing) служит для поиска​
​ А, В, С​ ​ немного сократить. ​alex2476​
​ 1 To ActiveDocument.Paragraphs.Count»​ ​ 8) С_конца_буквы_123456789_О =​ ​ 1) Буква_4_я_О =​ просто. надо изучить​ DirColumn = cell.Column​ начал писать, но​

​Join​​МираРизовна​Igor_Tr​ просто перевести строку​ начале строки возвращаемого​vbDatabaseCompare​String2​ номера символа(номера байта​ активного рабочего листа​alex2476​: Знатоки подскажите пожалуйста,​ и "InsPreLast$ =​ Right$(о, 9) С_конца_буквы_12345678910_О​ Right$((Left$(о, 4)), 1)​ как правильно дебагить​ End If Next​​ что-то не идет​​вариант работает, но​: Private Sub CommandButton1_Click()​, плюс одну команду​ наоборот, но чтобы​ значения резервируется место​​2​​0​ для​ слова из соответствующих​: Спасибо уважаемый Профессор,​ как в VBA​​ VBA.Left$(S, Len(S) -​​ = Right$(о, 10)​ Буква_5_я_О = Right$((Left$(о,​​ в среде VBA​​ Directory = DirRange(1,​ пока, поскольку c​​ есть подводный камень​
​ Dim c() As​

Функция Str

​ для вывода данных​

​ отдельное слово -​​ для знака числа.​Только для Microsoft Access.​​Параметры​​InStrB​ строк, содержащие по​ всё заработало как​ вывести строку начинающуюся​

​ 1) & «?»​

​ С_конца_буквы_без_первой_буквы_О = Right$(о,​​ 5)), 1) Буква_6_я_О​​ в экселе и​ DirCulumn) End Function​ VBA только знакомлюсь.​
​ (возможно, и не​ String c=split(Text1.Text) c(1)=ucase(c(1))​ во второе текстовое​ нет.​ Если число положительно,​ Сравнение выполняется с​Элемент​), с которого начинается​ крайней мере по​ надо!!​
​ с конкретно заданного​ & VBA.Right$(S, 1)».​​ (Len(о) — 1))​​ = Right$((Left$(о, 6)),​ найти есть ли​Ігор Гончаренко​ Необходимо сделать справочник,​ один)​

​ Text2.Text=join(c) End Sub​​ поле:​если мы переводим​ то в этом​

​ применением сведений из​

​Описание​​ в заданной строке​​ 2 буквы «д»​Sasha_Smirnov​​ символа(не путать с​​Сейчас я в​

​ Без_первой_и_последней_буквы = Left$​
​ 1) Буква_7_я_О =​
​ там подстветка переменных.
​: Public Function Directory(DirNumber​

Работа со строками

​ основанный на таблице​​text1=»Скажите, один меньше​Igor_Tr​Private Sub CommandButton1_Click()​ просо строку :​ месте будет пробел,​ базы данных пользователя​Start​ образец поиска. Поиск​Помогите, пожалуйста, решить​: Sub ToTypeFromDefiniteSign() Const​ номером позиции символа​ ОпенОфис, а завтра​ ((Right$ (о, (Len(о)​ Right$((Left$(о, 7)), 1)​спасибо!​ As String, DirRange​ из 4 столбцов.​
​ одинадцати»​: Спасибо Вам большущее!!!!!!​ Dim a As​Sub 12() Dim​
​ если число отрицательно,​Пример​Необязательный. Числовое выражение, которое​
​ идет от указанной​ одну задачку!!!просто очень​ ProbeString = «023_1387658762-;-;#»​ в строке ).​ попробую на Office2009​
​ — 1))), (Len(Right$​ Буква_8_я_О = Right$((Left$(о,​
​Hugo​ As Range) As​ При вводе данных​результат:​Апострофф​ String, а As​ a As String,​ то выводится знак​’ В данном примере​ задает первую позицию​

​ позиции слева направо.​ срочно нужно к​ sym = Left(InputBox(«Г‘èìâîë,​ Например 023_1387658762-;-;# ,​ эти макросы прогнать.​ (о, (Len(о) -​
​ 8)), 1) Буква_9_я_О​: option explicit используйте,​ String Dim Sum​​ в ячейку, написанная​​text2=»Скажите, ОДИН меньше​​: Дайте пошутить (но​​ String a =​​ b As String​​ минус.​
​ функция InStr ‘​
​ для каждого поиска.​ Поиск вхождения одной​ зачету решить кучу​

​ Г± êîòîðîãî ГЇГҐГ·Г*ГІГ*ГІГј​​06578_324576873654-;-;# нужно вывести​PS. Знаки вопроса​

​ 1))) — 1))для​​ = Right$((Left$(о, 9)),​ будет Вам «подсветка»​ As Double, DirColumn​ на VBA функция​ ОДИНадцати»​ серьйозно!).​ Application.Trim(TextBox1.Text) а =​
​ a=Text1.Text n=Len(a) b=»​В качестве десятичного​ возвращает позицию первого​ Если параметр опущен,​ строки в другую​ задач и я​ ñòðîêó.», «Г‚âîä», «_»),​ строку начиная с​ нужно ставить не​ понимания, про Мид​ 1) Буква_10_я_О =​Kuzmich​​ As Long For​​ должна искать значение​Если честно -​Если делать сборку,​ Replace(a, Split(a, Space(1))(0),​
​ » For K=​ разделителя дроби функция​ появления ‘ одной​ поиск начинается с​ весьма часто используемая​ не успеваю всё!!!​ 1) If sym​ символа «_». Функция​ именно в предпоследние​ не забываем​ Right$((Left$(о, 10)), 1)​: Если вы желаете​ Each cell In​ ячейки в таблице​ не проверял. Очень​ как у меня​ StrReverse(Split(a, Space(1))(0)), 1)​

​ 1 To n​​Str​

​ строки внутри другой​​ позиции первого символа.​ операция. Нумерация символов​petr-sev​ = Empty Then​ Mid это делает​ позиции, а в​Апострофф​ Буква_последняя_О = Right$((Left$(о,​ использовать свою конструкцию​ DirRange If cell​

​ — справочнике (все​​ вечером устал. Поле​ в начале, тогда​ TextBox2.Text = а​ b = mid(a,K,1)+b​воспринимает только точку.​ строки Dim SearchString,​В том случае, когда​ всегда начинается с​: Sub NN() Dim​ Exit Sub sympos​ по номеру позиции​
​ соответственно в 3-ю​: Function InsPreLast$(S$) InsPreLast$​ Len(о))), 1) Буква_1_О​ Directory = DirRange(1,​ = DirNumber Then​ значения в ячейках​ выматывает. Спасибо за​ код от Апострофф​ ‘осторожно: в коде,​ Next K Text2.Text​ При использовании других​

​ SearchChar, MyPos SearchString​​ значение параметра​ единицы​ I As Long​ = InStr(1, ProbeString,​

​ символа в строке.​ и 4-ю позицию​

​ = VBA.Left$(S, Len(S)​​ = Left$(о, 1)​ DirColumn)то надо ее​
​ DirColumn = cell.Column​ числовые, но поскольку​ подсказку.​ будет так​ предложенном Igor_Tr, используются​
​ = b End​ десятичных разделителей (например,​ =»Русский_Проект» ‘ Исходная​Start​Примечание​ Dim J As​ sym) MsgBox «Г‘èìâîë​ Заранее благодарен​ в данном примере,​ — 1) &​ Буквы_12_О = Left$(о,​
​ подкорректировать Directory =​ — DirRange.Column +​ многие начинаются с​Олежа​Text2.Text = Join(Replace(Application.Trim(text1.Text),​ как латинская a,​ Sub​ запятой) следует использовать​ строка SearchChar =​равно Null, возникает​В функции​ Long Dim K​ «» & sym​Sasha_Smirnov​ но теперь я​ «?» & VBA.Right$(S,​ 2) Буквы_123_О =​ DirRange(1, DirColumn -​

​ 1: Exit For​​ 0, то формат​​: Дан текст в​​ _ Split(Application.Trim(text1.Text)(1)), UCase(Split(Application.Trim(text1.Text))(1)),​​ ‘так и славянская​​Igor_Tr​ функцию CStr​ «Р» ‘ Следует​
​ ошибка. ​InStr​ As Long Dim​​ & «» ñòîèò​​: Попробуйте номер этого​
​ разберусь, там мне​​ 1) End Function​​ Left$(о, 3) Буквы_1234_О​ 2)​ Next Directory =​ данных везде текстовый)​
​ поле ввода(TextBox). Слова​ 1))это просто как​
​ а. В выражении​
​: Я уже хотел​Параметры​

​ найти «P» ‘​Параметр​при очень длинных​ numRow As Long​ Г*Г* » &​

CyberForum.ru

Работа со строками (Функции Function)

​ символа (для дальнейшего​​ подробно описали )..​ Sub Example_InsPreLast() MsgBox​ = Left$(о, 4)​How_much_watch​ DirRange.Cells(1, DirColumn) End​ и возвращать значение​ в предложение имеющим​ вариант. От Апостроф​ TextBox2.Text = а​ комп выключить! А​NumberЛюбое выражение, которое​ Посимвольное сравнение, начиная​

​Start​​ строках при текстовом​ Dim strIn(1 To​ sympos & «-Г¬​ употребления в Mid)​Ципихович Эндрю​ InsPreLast(«1234») End Sub​ Буквы_12345_О = Left$(о,​: Помогите пожалуйста сделать​ Function​ первой строки того​ самое большое количество​ и понятней, и​ буква а должна​ тут такие обещания!!!​ можно записать в​ с позиции 4. ​является обязательным, если​ методе сравнения, возможно​ 3) As String​ ìåñòå.» Select Case​ искать перебором в​: Не стоит удивлятся!​Казанский​

​ 5) Буквы_123456_О =​​ макрос. Он не​
​V​

excelworld.ru

VBA: поиск числа в текстовом формате в таблице и работа со строками

​ столбца, где есть​​ символов в словах(​
​ проще. А у​ быть славянской! End​ Не хочу быть​ виде строки​ Возвращает 10 MyPos​ задан параметр​ возникновение ошибки времени​ Dim Words() As​ sympos = 0​ цикле.​ В жОпенОфисе все​:​ Left$(о, 6) Буквы_1234567_О​ должен быть сложным,​: =ИНДЕКС(C7:F7;;СУММПРОИЗВ(($C$8:$F$29=$D$2)*СТОЛБЕЦ(A1:D1)))​ совпадение.​ пробелы не считать)​ меня, если б​ SubС уважением, Aksima​ грешником.​Пример​ =​Compare​
​ исполнения Stack overflow.​ String For I​ Case True: MsgBox​XoFfiCEr​ через ж… делается.​Не по теме:​ = Left$(о, 7)​ просто я ими​beryllium​Код приведен ниже.​ расположить в обратном​ еще чуть длиннее​Igor_Tr​Там нет проблемы. ​Dim retval retval =​
​Instr​
​String1​ Избежать этой ошибки​ = 1 To​ Mid(ProbeString, sympos) Case​: Sub Poisk() Dim​dzug​Ципихович Эндрю​ Буквы_12345678_О = Left$(о,​ еще не занимался.​: Ігор Гончаренко,спасибо. Не​
​ Подскажите пожалуйста что​ порядке, а в​ — было бы​: Огромное спасибо.​ Вытягиваете первое слово​Str​(4, SearchString, SearchChar, vbTextCompare)​Обязательный. Строковое выражение,в котором​ можно, переведя исходную​ 3 strIn(I) =​ Else: MsgBox Mid(ProbeString,​ stroka As String​: что за зверь?​, даже я на​

​ 8) Буквы_123456789_О =​​ У меня есть​ понял сразу как​ там не так.​ остальных предложениях заменить​ что-то от формул​МираРизовна​ (​(123)’ получаем » 123″​ ‘ Двоичное сравнение,​ ведется поиск​ строку и образец​ InputBox(«Введите » &​ sympos) End Select​ Dim nstroka As​Круто написяно..​

​ такое не способен​​ Left$(о, 9) Буквы_12345678910_О​

​ список многих строк​​ именно нумеруются ячейки​ И, если не​ последнюю букву в​ аэродинамики . ​: To Aksima. Спасибо​split(a, space(1))(0)​ retval=​
​ начиная с позиции​String2​ в один регистр​ CStr(I) & «-ую​ End SubЭто я​

​ String Dim ls​​IseeYOU​ :D​ = Left$(о, 10)​ в Wordовском файле​
​ в общей таблице​ сложно, подскажите для​ слове на верхний​To Aksima. Очень​ за подстраховку -​

​), выкручиваете (​​Str​ 1. Возвращает 1​
​Обязательный. Отыскиваемое строковое выражение​ и перейдя на​​ строку») Next For​​ как-то сразу не​
​ As Integer Dim​: Всем доброго времени​Зачот​

​ Буквы_с_начала_без_последней_буквы_О = Left$(о,​​ из 3 и​​ в том диапазоне,​ VBA функцию, которая​ регистр.​ Вас уважаю, поверьте​ я только з​strreverse(split(a, space(1))(0))​(-12.3)’ получаем «-12.3″​
​ MyPos =​

​Compare​​ бинарное сравнение​ I = 1​

​ сообразил. Может, пригодится.​​ index As Integer​ суток!​How_much_watch​ (Len(о) — 1))​ 4 символов в​ который был передан​ позволяла бы «резать»​

planetaexcel.ru

Работа со строками в Word’овском файле

​Poltava​​ на слово, но​ поля вернулся. Вот​), делаете замену через​Смотри также​Instr​Необязательный. Задает тип сравнения​Возвращаемое значение​ To 3 Words​Sasha_Smirnov​ Dim i As​Нужно написать программу​
​: Если каждая строка​
​ С_конца_буква_1_я_О = Left$((Right$(о,​
​ виде, например:​ в функцию.​ строки, т.к. отрезать​: Используя split делите​ очень не люблю​
​ только как могли​
​replace​
​CStr​(1, SearchString, SearchChar, 0)​ для строк.​Возвращает значение типа Variant(Long),​ = Split(strIn(I)) numRow​: Sub ToTypeFromDefiniteSign() Const​ Integer Dim sm​

​ на VBA. ТАк​​ образует абзац И​ 1)), 1) или​
​123​V, ваш способ​
​ от строковой переменной​ на предложения, перебираете​ личные сообщения. У​ появиться разные «а»,​. И все.​Категория​ ‘ Сравнение является​Если значение параметра​ указывающее позицию первого​ = 1 For​ ProbeString = «023_1387658762-;-;#»​ As String r:​ как сам я​ надо вставить «?»​ ЛУЧШЕ С_конца_буква_1_О =​1234​ гениален, но на​ 2 последний разряда,​ получившийся массив в​ меня нет проблем​ если я бил​Вот так, где-то:​Функции обработки строк​ двоичным по умолчанию​Compare​ появления одной строки​ J = 0​ sym = Left(InputBox(«Символ,​ stroka = InputBox(«Введите​ в vba не​ перед предпоследним символом​ Right$(о, 1) С_конца_буква_2_я_О​Мне нужно во​ большем объеме данных​ к примеру. Версия​ поисках самого длинного​ с комплексами. Если​ прямо здесь в​a=application.trim(Text1.Text) а=replace(a, split(a,​ПоцелуюНежно​ (последний аргумент опущен)​равно Null, возникает​ внутри другой​ To UBound(strIn) -​ с которого печатать​ строку», «поиск в​ особо силён, то​ абзаца, то можно​ = Left$((Right$(о, 2)),​ все строки вставить​ почему-то работает не​ справочника есть в​ предложения заменяя перед​ делаю ошибки, а​ окне при лат.​ space(1))(0), strreverse(split(a, space(1))(0)),​: Допустим, у нас​ MyPos =​ ошибка.​Перечень возвращаемых значений​ 1 K =​ строку.», «Г‚âîä», «_»),​ строке», «023_1387658762-;-;#») ls​ очень прошу помочь.​ так: Sub How_much_watch()​ 1) С_конца_буква_3_я_О =​ «?» чтобы все​ всегда.​ прикрепленном файле, функция​ подсчетом все пробелы​ Вы хотите их​ раскладке?​ 1)​ есть 4 слова,​Instr​В том случае,​Вариант​

​ InStr(1, Words(J), «д»)​​ 1) If sym​ = Len(stroka) If​Суть задания:​ Dim i&, s$​ Left$((Right$(о, 3)), 1)​ они стали в​Ігор Гончаренко​

​ находится в ячейке​​ на пустоту. Затем​

​ указать, ну очень​

​Апострофф​​ПоцелуюНежно​ вводим их в​(SearchString, SearchChar) ‘ Возвращает​
​ когда параметр​

​Значение, возвращаемое функцией InStr​​ If K >​ = Empty Then​ ls < 1​Имеется фаил эксель,​ For i =​ С_конца_буква_4_я_О = Left$((Right$(о,​ виде:​: =ИНДЕКС(C7:F7;;СУММПРОИЗВ(($C$8:$F$29=$D$2)*СТОЛБЕЦ(A1:D1)))не сработает, когда​ E3.​ узнав индекс наибольшего​ Вас прошу -​: Вопрос по теме​: А как она​ форму, в которой​ 1 MyPos =​Compare​

​String1​​ 0 Then K​ Exit Sub sympos​ Then GoTo r​ в нём хранятся​ 1 To ActiveDocument.Paragraphs.Count​ 4)), 1) С_конца_буква_5_я_О​12?3​ в диапазоне данных​Спасибо!​ предложения делите его​ указывайте здесь. Думаю,​ работы со строками.​ полностью будет выглядеть?​ 2 тестовых поля​Instr​опущен,тип сравнения определяется​имеет нулевую длину​ = InStr(K +​
​ = InStr(1, ProbeString,​ End If index​ данные вида​ With ActiveDocument.Paragraphs(i).Range s​
​ = Left$((Right$(о, 5)),​123?4​ есть несколько искомых​P. S. Сначала пытался​ все тем же​ другим чужие ошибки​ Почти такая же​ПоцелуюНежно​ и одна кнопка.​(1, SearchString, «W») ‘​

​ установками оператора​​0​ 1, Words(J), «д»)​ sym) MsgBox «Символ​

​ = 0 For​​|Фамилия студента|Группа.|Вид работы|Название………..|Год…|​

​ = .Text .Text​

CyberForum.ru

Работа со строками

​ 1) С_конца_буква_6_я_О =​​Задача упрощена, но​ значений​
​ сделать это стандартными​ split на слова​ тоже интересные. Иногда​ задачка,но не надо​: Добавьте в ваш​ В одно текст.​
​ Возвращает 0​
​Option Compare​String1​ If K >​
​ «» & sym​
​ i = 1​
​|——————|———|————|——————|——|​
​ = Left$(s, Len(s)​
​ Left$((Right$(о, 6)), 1)​
​ я по аналогии​СУММПРОИЗВ заменить на​
​ средствами с помощью​ и собираете цыклов​ больше пользы, чем​ символы записывать в​ проект пользовательскую форму​ поле мы вводим​Категория​Установки​
​имеет значение Null​

​ 0 Then ActiveSheet. Cells(numRow,​​ & » стоит​

​ To ls sm​​|Петров Николай…|МЗ-415.|Диплом……|Автоматизация.. |2008|​

CyberForum.ru

Работа со строками

​ — 2) &​​ С_конца_буква_7_я_О = Left$((Right$(о,​ сам доделаю.. .​ МАКС и формулу​ ЕСЛИ и ГПР,​ в обратном порядке.​ от удач. Но​ обратной последовательности. А​ и в режиме​
​ исходную строку со​Функции обработки строк​Для параметра​Null​ I) = Words(J)​ на » &​ = Mid(stroka, i,​

​|——————|———|————|——————|——|​​ «?» & Right$(s,​ 7)), 1) С_конца_буква_8_я_О​ Помогите, кому не​ ввести, как формулу​ но так тоже​

​ оставшиеся элементы первого​​ это просто мое​ просто второе слово​ дизайна формы разместите​ словами, нажимаем кнопку​Str(Number)​Compare​String2​ numRow = numRow​ sympos & -м​ 1) If sm​|Иванов Анатолий..|КО-143.|Курсовая…|Проектирование.|2010|​ 2) End With​ = Left$((Right$(о, 8)),​ сложно. Не хочется​ массива (Ctrl+Shift+Enter) -​ ничего не фурычит. ​ масива перебираете аналогично​ мнение.​ в строке чтобы​ на ней два​ и в рез-те​Функция​используются следующие установки:​имеет нулевую длину​ + 1 End​ месте.» Select Case​ = «_» Then​и так далее​ Next End Sub​ 1) С_конца_буква_9_я_О =​ ради этого раза​ будет работать всегда.​ Подозреваю, что именно​ но только изменяя​Igor_Tr​ с заглавными буквами​ текстовых поля и​

​ чего, во втором​​Str​Константа​Start​

​ If Next Next​​ sympos = 0​ index = i​ много-много строк​Апострофф​ Left$((Right$(о, 9)), 1)​ лопатить много литературы..​Kuzmich​ из за текстового​ регистр. Нелюблю студентов​:​ записывало. Именно второе​ кнопку.​ тект. поле появляется​(​Значение​String2​ End Sub​ Case True: MsgBox​ Exit For End​Задача состоит в​: спасибо большое, коды​ С_конца_буква_10_я_О = Left$((Right$(о,​Ципихович Эндрю​

​: Не так в​​ формата данных для​ халявщиков! Если будут​Igor_Tr​ слово,не трогая первое.​Затем (в этом​ ответ. А в​Str​Описание​имеет значение Null​dashulja​ «Строка » &​ If Next i​ том, что если​ полезные, всё то​ 10)), 1) С_конца_буква_1_О​: и куда именно​ строке​ чисел. ​ от вас попытки​,​Private Sub CommandButton1_Click()​ же режиме) дважды​ ответе первое слово​ing) используется для приведения​vbUseCompareOption​

CyberForum.ru

Работа со строками и символами

​Null​​: ОГРОМНОЕ СПАСИБО!!!!!!!!!!!!​ ProbeString & «​ If index =​ работа является дипломом,​ что нужно для​ = Right$(о, 1)​ вопрос ставить?​Directory = DirRange(1,​Public Function Directory(DirNumber​
​ решения и конкретные​Join​ Dim a As​ щелкните по кнопке.​ должно быть написано​ числового выражения типа​

​-1​​String2​вот блин(((сначала работала​ не содержит символа​ 0 Then MsgBox​ то вся строка​ меня. Правда таки​ С_конца_буквы_12_О = Right$(о,​на многие случаи​ DirC​ As String, DirRange​ вопросы то тогда​в Вашем примере​ String, b As​ Среда разработчика автоматически​ наоборот.​ Long в строку(тип​Сравнение выполняется с использованием​не найдена​ программка, а потом​ ‹» & sym​ «Не найдено!», vbExclamation,​ копируется в таблицу​ заминочка выходит. Оба​ 2) С_конца_буквы_123_О =​ жизни:​u​ As Range) As​ милости просим подскажем​ вызывает ошибку 13:​ String, c() As​ создаст процедуру обработки​т.е. из «Классные​ String)​ установок для оператора​

​0​​ перестала!!!​
​ & «›.» Case​ «поиск в строке»​ на второй лист,​

CyberForum.ru

​ последних примера вылетают​

  • Формулы для работы в excel
  • Excel работа с фильтрами
  • Excel работа с массивами данных
  • Excel совместная работа с файлом excel
  • Как в excel поменять строки и столбцы местами
  • Vba excel перенос строки
  • Excel преобразовать строки в столбцы в excel
  • Для предотвращения потери данных excel не позволяет вставить строку
  • Как в excel закрепить и строку и столбец одновременно
  • Работа в excel с таблицами и формулами
  • Работа с excel из с
  • Как в excel сделать автоподбор высоты строки

Найти текст в строке (функция instr)

В этой статье

  • Функция instr
    • Пример instr
    • Syntax Instr
    • Инструмент старта Made Easy
    • Примеры InString
      • Если строка содержит подстроку
      • Поиск текстовой строки в ячейке
      • Поиск позиции символа в строке
      • Поиск строки для Word
      • Если переменная содержит строку
      • Instr и функция Left
    • Использование Instr в Microsoft Access VBA

    Функция INSTR

    Функция VBA Instr проверяет, найдена ли текстовая строка в другой текстовой строке. Возвращает 0, если текст не найден. В противном случае он возвращает позицию символа, в которой находится текст.

    Функция Instr выполняет точных совпадений. Вместо этого можно использовать оператор VBA Like для выполнения неточных совпадений/сопоставления шаблонов с использованием подстановочных знаков.

    Instr Example

    Следующий фрагмент кода ищет в строке «Искать в этой строке» слово «Искать». Функция Instr возвращает 1, поскольку текст находится в первой позиции.

     Sub FindSomeText()
      MsgBox InStr("Посмотреть в этой строке", "Посмотреть")
    End Sub 

    Этот второй пример возвращает 7, потому что текст найден, начиная с 7-й позиции:

     Sub FindSomeText2()
      MsgBox InStr("Не смотреть в этой строке", "Искать")
    Конец суб 

    Важно! Функция Instr по умолчанию имеет значение с учетом регистра . Это означает, что «look» не будет совпадать с «Look». Чтобы сделать тест нечувствительным к регистру, читайте ниже.

    Синтаксис Instr

    Синтаксис функции Instr следующий:

     Instr( [start], string, substring, [compare] ) 

    [start] (необязательно) — этот необязательный аргумент является начальной позицией поиска. Введите 1, чтобы начать поиск с позиции 1 (или оставьте поле пустым). Введите 5, чтобы начать поиск с позиции 5. Важно! Функция INSTR вычисляет позицию символа, считая от 1 НЕ от [начальной] позиции .

    строка — строка текста для поиска.

    подстрока — строка текста для поиска в основной строке.

    [сравнить] (необязательно) — по умолчанию Instr чувствителен к регистру. Установив этот аргумент, вы можете сделать Instr нечувствительным к регистру:

    Аргумент vb Значение

    Целочисленный аргумент Описание
    vbBinaryCompare

    0

    (по умолчанию) С учетом регистра

    vbTextCompare

    1

    Без учета регистра

    vbDatabaseCompare

    2

    Только доступ MS. Использует информацию в базе данных для выполнения сравнения.

    Начальная позиция инструкции

    Начальная позиция инструкции позволяет указать позицию символа, с которой вы начнете поиск. Имейте в виду, однако, что вывод Instr всегда будет считаться с 1.

    Здесь мы устанавливаем начальную позицию на 3, чтобы пропустить первую B:

     Sub Instr_StartPosition()
      MsgBox InStr(3, "ABC ABC", "B")
    End Sub 

    Результат равен 6, потому что вторая буква B является шестым символом в строке.

    Тест INSTR без учета регистра

    По умолчанию VBA рассматривает «L» иначе, чем «l». Другими словами, VBA чувствителен к регистру. Это справедливо для всех текстовых функций. Чтобы сделать VBA нечувствительным к регистру, установите для аргумента [compare] значение 1 или vbTextCompare.

     Общедоступная подпрограмма FindText_IgnoreCase()
      MsgBox InStr(1, "Не смотреть в этой строке", "смотреть", vbTextCompare)
    End Sub 

    Кроме того, вы можете добавить Текст сравнения параметров в верхнюю часть модуля кода:

     Текст сравнения параметров 

     

     Текст сравнения параметров
    
    Общедоступная подпрограмма FindText_IgnoreCase2()
      MsgBox InStr("Не смотреть в этой строке", "смотреть")
    Конец суб 

    Option Compare Text повлияет на весь код в этом модуле. Я лично помещаю это в начало любого модуля, который имеет дело с текстом, потому что меня никогда не волнуют различия регистров.

    Функция InstrRev

    Функция InstrRev выполняет поиск слева. Вместо этого вы можете искать справа, используя функцию InstrRev. Функция InstrRev работает очень похоже на функцию Instr.

     Sub FindSomeText_FromRight()
      MsgBox InStrRev("Посмотреть в этой строке", "Посмотреть")
    Конец суб 

    Как и функция Instr, она вернет 1, потому что в тексте есть только один экземпляр «Look». Но если мы добавим второй «Look», вы увидите, что он возвращает позицию самого правого «Look»:

     Sub FindSomeText_FromRight()
    MsgBox InStrRev("Посмотреть в этой строке "Посмотреть", "Посмотреть")
    End Sub 

     

    Далее мы рассмотрим другие примеры Instr.

    Кодирование VBA стало проще

    Прекратите поиск кода VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области программирования и множеством функций, позволяющих сэкономить время для всех пользователей!

     

    Узнайте больше!

    Примеры InString

    Если строка содержит подстроку

    Здесь мы будем использовать оператор If, чтобы проверить, содержит ли строка подстроку текста:

     Public Sub FindSomeText()
    
    Если InStr("Посмотреть в этой строке", "посмотреть") = 0 Тогда
       MsgBox "Нет совпадений"
    Еще
       MsgBox "По крайней мере одно совпадение"
    Конец, если
    
    End Sub 

    Найти текстовую строку в ячейке

    Вы также можете найти строку в ячейке:

     Sub Find_String_Cell()
        Если InStr(Range("B2"). Value, "Dr.") > 0 Тогда
            Диапазон("C2").Value = "Доктор"
        Конец, если
    End Sub 

    Или прокрутите диапазон ячеек, чтобы проверить, содержат ли ячейки текст:

     Sub Search_Range_For_Text()
    Затемнить ячейку как диапазон
    
        Для каждой ячейки в диапазоне («b2: b6»)
            Если InStr(cell.Value, "Доктор") > 0 Тогда
                cell.Offset(0, 1).Value = "Доктор"
            Конец, если
        Следующая ячейка
        
    Конец суб 

     

    Программирование VBA | Генератор кода работает на вас!

    Найти позицию символа в строке

    Этот код найдет позицию одиночного символа в строке и присвоит позицию переменной:

     Sub Find_Char()
      Dim N As Long
      n = InStr("Вот, смотри сюда", "L")
    End Sub 

     

    Строка поиска для Word

    Этот код будет искать слово в строке:

     Sub Search_String_For_Word()
        Dim N As Long
        n = InStr("Вот Смотри Здесь", "Смотри")
      
        Если п = 0 Тогда
            MsgBox "Слово не найдено"
        Еще
            MsgBox "Слово найдено в позиции: " & n
        Конец, если
    Конец суб 

     

    Если переменная содержит строку

    Этот код проверяет, содержит ли строковая переменная строку текста:

     Sub Variable_Contains_String()
        Dim str As String
        ул = "Посмотри сюда"
        
        Если InStr(str, "Здесь") > 0 Тогда
            MsgBox "Вот нашел!"
        Конец, если
    End Sub 

     

    Instr и Left Function

    Instr можно использовать вместе с другими текстовыми функциями, такими как Left, Right, Len и Mid, для обрезки текста.

    С помощью функции Left вы можете вывести текст перед текстовой строкой:

     Sub Instr_Left()
        Dim str As String
        Dim N As Long
        
        ул = "Посмотри сюда"
        
        n = InStr(str, "Здесь")
        
        MsgBox Left(str, n - 1)
    
    End Sub 

    Использование Instr в Microsoft Access VBA

    Все приведенные выше примеры работают точно так же в Access VBA, как и в Excel VBA.

    Чтобы узнать больше, прочитайте нашу статью: Текстовые функции VBA


    <<Вернуться к примерам VBA

    Функция InStr (Visual Basic для приложений)

    Редактировать

    Твиттер LinkedIn Фейсбук Эл. адрес

    • Статья
    • 2 минуты на чтение

    Возвращает вариант Variant ( Long ), указывающий позицию первого вхождения одной строки в другую.

    Примечание

    Заинтересованы в разработке решений, расширяющих возможности Office на различных платформах? Ознакомьтесь с новой моделью надстроек Office. Надстройки Office занимают меньше места по сравнению с надстройками и решениями VSTO, и вы можете создавать их, используя практически любые технологии веб-программирования, такие как HTML5, JavaScript, CSS3 и XML.

    Синтаксис

    InStr ([ начало ], строка1 , строка2 , [ сравнить ])

    Синтаксис функции InStr имеет следующие аргументы:

    Часть Описание
    начало Дополнительно. Числовое выражение, задающее начальную позицию для каждого поиска. Если этот параметр опущен, поиск начинается с позиции первого символа. Если start содержит Null, возникает ошибка. Аргумент start требуется, если указано сравнение .
    строка1 Обязательно. Искомое строковое выражение.
    строка2 Обязательно. Искомое строковое выражение.
    сравнить Дополнительно. Указывает тип сравнения строк. Если сравнить с Null , возникает ошибка. Если параметр compare опущен, параметр Option Compare определяет тип сравнения. Укажите действительный LCID (LocaleID), чтобы использовать при сравнении правила, специфичные для локали.

    Параметры

    Параметры аргумента сравнения следующие.

    Константа Значение Описание
    vbUseCompareOption -1 Выполняет сравнение, используя настройку оператора Option Compare .
    vbBinaryCompare 0 Выполняет двоичное сравнение.
    vbTextCompare 1 Выполняет текстовое сравнение.
    vbDatabaseCompare 2 Только Microsoft Access. Выполняет сравнение на основе информации из вашей базы данных.

    Возвращаемые значения

    Если InStr возвращает
    string1 имеет нулевую длину 0
    string1 равно Null Нулевой
    string2 имеет нулевую длину начало
    string2 равно Null Нулевой
    строка2 не найдена 0
    строка2 находится в строке 1 Позиция, в которой найдено совпадение
    начало > строка2 0

    Функция InStrB используется с байтовыми данными, содержащимися в строке. Вместо того, чтобы возвращать позицию символа первого вхождения одной строки в другую, InStrB возвращает позицию в байте.

    Пример

    В этом примере функция InStr используется для возврата позиции первого вхождения одной строки в другую.

     Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP" ' Строка для поиска.
    SearchChar = "P" ' Поиск "P".
    ' Текстовое сравнение, начинающееся с позиции 4. Возвращает 6.
    MyPos = Instr(4, SearchString, SearchChar, 1)
    ' Двоичное сравнение, начинающееся с позиции 1. Возвращает 9.
    MyPos = Instr(1, SearchString, SearchChar, 0)
    ' Сравнение по умолчанию бинарное (последний аргумент опущен).
    MyPos = Instr(SearchString, SearchChar) ' Возвращает 9.
    MyPos = Instr(1, SearchString, "W") ' Возвращает 0.
     

    См. также

    • Функции (Visual Basic для приложений)

    Поддержка и отзывы

    У вас есть вопросы или отзывы об Office VBA или этой документации? См. раздел Поддержка и отзывы Office VBA, чтобы узнать, как вы можете получить поддержку и оставить отзыв.

    VBA InStr — Как использовать функцию Excel VBA InStr? (Примеры)

    Функция VBA InStr помогает найти позицию заданной подстроки в строке. Он возвращает первое вхождение подстроки в виде целого числа (вывод). Строка — это последовательность символов или текста, передаваемого функции в двойных кавычках.

    Например, InStr может извлекать подстроку из предложения, применять нужный шрифт к определенной строке, находить положение символа в строке и т.д.

    Функция VBA InStr в Excel начинает поиск слева направо.

    Содержание
    • Функция InStr в Excel VBA
      • Синтаксис функции VBA InStr
      • Примеры VBA InStr
        • Пример №1 — Аргумент «Start» опущен
        • Пример №2 — «ArgumentStar isgument» Указано
        • Пример № 3-чувствительный к примеру Поиск
        • Пример № 4-нечувствительный поиск
        • Пример № 5-Адвентный уровень
      • Свойства VBA Instrance
      • Часто задаваемые вопросы
      • Рекомендованные статьи
    .