Функции строк и подстрок VBA

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

Извлечение подстроки

Функция левой строки VBA

Функция VBA Left позволяет извлекать подстроку из текста или строки, начиная с левой стороны. Синтаксис функции левой строки VBA:

Left (String, Num_of_characters), где:

  • Строка - исходный текст.
  • Num_of_characters - Целое число, указывающее количество символов, извлекаемых из исходного текста, начиная с начала.

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

1234567891011 Sub UsingTheLeftStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "AutomateExcel"valueTwo = Left (значениеOne, 4)MsgBox valueTwoКонец подписки

Результат:

Функция Left извлекла первые четыре буквы AutomateExcel, которые являются Auto.

Функция правой строки VBA

Правая функция VBA позволяет извлекать подстроку из текста или строки, начиная с правой стороны. Синтаксис функции правой строки VBA:

Справа (String, Num_of_characters), где:

  • Строка - исходный текст.
  • Num_of_characters - Целое число, указывающее количество символов, извлекаемых из исходного текста, начиная с конца.

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

1234567891011 Подложка UsingTheRightStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "AutomateExcel"valueTwo = Right (значениеOne, 4)MsgBox valueTwoКонец подписки

Результат:

Функция Right извлекла последние четыре буквы AutomateExcel, которые являются xcel.

Функция средней строки VBA

Функция VBA Mid позволяет извлекать подстроку из текста или строки, начиная с любой позиции в указанной вами строке. Синтаксис функции средней строки VBA:

Mid (String, Starting_position, [Num_of_characters]), где:

  • Строка - исходный текст.
  • Начальная_позиция - позиция в исходном тексте, из которой функция начнет извлекать.
  • Num_of_characters (По желанию) - Целое число, указывающее количество символов, извлекаемых из исходного текста, начиная с начального_позиции. Если пусто, функция MID вернет все символы из начального_позиции.

В следующем коде показано, как использовать функцию Mid String для извлечения четырех символов, начиная со второй позиции или символа в строке:

1234567891011 Sub UsingTheMidStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "AutomateExcel"valueTwo = Mid (значениеOne; 2; 4)MsgBox valueTwoКонец подписки

Результат выводится в msgbox:

Функция Mid извлекла четыре буквы AutomateExcel, начиная со второго символа / позиции / буквы, которые являются utom.

Поиск позиции подстроки

Строковая функция VBA Instr

Функция VBA Instr возвращает начальную позицию подстроки в другой строке. Эта функция чувствительна к регистру. Синтаксис строковой функции VBA Instr:

Instr ([Начало], Строка, Подстрока, [Сравнить]), где:

  • Начинать (По желанию) - указывает начальную позицию для функции для поиска. Если пусто, используется значение по умолчанию 1.
  • Строка - исходный текст.
  • Подстрока- Подстрока в исходном тексте, положение которой вы хотите найти.
  • Сравнивать (По желанию)- Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.

-vbBinaryCompare - двоичное сравнение (верхний и нижний регистры считаются разными)
-vbTextCompare - Сравнение текста (верхний и нижний регистр считаются одинаковыми)
-vbDatabaseCompare - сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных)

В следующем коде показано, как использовать функцию Instr String для определения первого вхождения подстроки «Th» в основной строке:

123456789101112 Sub UsingTheInstrStringFunction ()Тусклое значение: одно как строкаУменьшить положение подстроки как целое числоvalueOne = "Это текст"positionofSubstring = InStr (1, valueOne, "Th")Отладка. Печать позиции подстрокиКонец подписки

Результат (выводится в окно Immediate Window):

Функция Instr вернула позицию первого вхождения подстроки «Th», которая равна 1. Обратите внимание, что эта функция включает пробелы в счетчике.

Строковая функция VBA InstrRev

Функция VBA InstrRev возвращает начальную позицию подстроки в другой строке, но начинает отсчет позиции с конца строки. Эта функция чувствительна к регистру. Синтаксис строковой функции VBA InstrRev:

InstrRev (String, Substring, [Start], [Compare]), где:

  • Строка - исходный текст.
  • Подстрока- Подстрока в исходном тексте, положение которой вы хотите найти.
  • Начинать (По желанию) - указывает позицию для начала поиска. Если пусто, функция начинает поиск с последнего символа.
  • Сравнивать (По желанию)- Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.

-vbBinaryCompare - двоичное сравнение (верхний и нижний регистры считаются разными)
-vbTextCompare - Сравнение текста (верхний и нижний регистр считаются одинаковыми)
-vbDatabaseCompare - сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных)

В следующем коде показано, как использовать функцию InstrRev String для определения первого вхождения подстроки «Th» в основной строке, начиная с конца строки:

1234567891011 Sub UsingTheInstrRevStringFunction ()Тусклое значение: одно как строкаУменьшить положение подстроки как целое числоvalueOne = "Это текст"positionofSubstring = InStrRev (valueOne, "Th")Отладка. Печать позиции подстрокиКонец подписки

Результат выводится в Немедленное окно:

Функция InstrRev вернула позицию первого вхождения подстроки «Th», но отсчет начинается с конца, равного 9. Обратите внимание, что эта функция включает пробелы в счетчике.

Удаление пробелов из строки

Строковая функция VBA LTrim

Функция VBA LTrim удаляет все начальные пробелы из текста или строки. Синтаксис строковой функции VBA LTrim:

LTrim (String) где:

  • Строка - исходный текст.

В следующем коде показано, как использовать функцию VBA LTrim для удаления начальных пробелов в данной строке:

123456789101112 Sub UsingTheLTrimStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "Это адрес веб-сайта https://easyexcel.net/excel/"valueTwo = LTrim (значениеOne)MsgBox valueOneMsgBox valueTwoКонец подписки

Результаты следующие:

Функция LTrim удалила начальные пробелы для valuetwo, которое показано во втором окне сообщения.

Строковая функция VBA RTrim

Функция VBA RTrim удаляет все конечные пробелы из текста или строки. Синтаксис строковой функции VBA RTrim:

RTrim (String) где:

  • Строка - исходный текст.

В следующем коде показано, как использовать функцию VBA RTrim для удаления конечных пробелов в данной строке:

123456789101112 Sub UsingTheRTrimStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "Это адрес веб-сайта https://easyexcel.net/excel/"valueTwo = RTrim (значениеOne)MsgBox valueOneMsgBox valueTwoКонец подписки

Полученные результаты:

Функция RTrim удалила конечные пробелы для valuetwo, которое показано во втором окне сообщения.

Функция строки обрезки VBA

Функция обрезки VBA удаляет все начальные и конечные пробелы из текста или строки. Синтаксис функции строки обрезки VBA:

Обрезать (Строка), где:

  • Строка - исходный текст.

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

123456789101112 Подпрограмма UsingTheTrimStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "Это адрес веб-сайта https://easyexcel.net/excel/"valueTwo = Обрезать (значениеOne)MsgBox valueOneMsgBox valueTwoКонец подписки

Результат:

Функция обрезки удалила начальные и конечные пробелы для valuetwo, которое показано во втором окне сообщения.

Функции регистра VBA

Строковая функция VBA LCase

Функция VBA LCase преобразует буквы в тексте или строке в нижний регистр. Синтаксис строковой функции VBA LCase:

LCase (String) где:

  • Строка - исходный текст.

В следующем коде показано, как использовать строковую функцию LCase для преобразования всех букв в данной строке в нижний регистр:

1234567891011 Sub UsingTheLCaseStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "ЭТО ПРОДУКТ"valueTwo = LCase (значениеOne)MsgBox valueTwoКонец подписки

Результат:

Функция LCase преобразовала все буквы в строке в нижний регистр.

Строковая функция VBA UCase

Функция VBA UCase преобразует буквы в тексте или строке в верхний регистр. Синтаксис строковой функции VBA UCase:

UCase (String) где:

  • Строка - исходный текст.

В следующем коде показано, как использовать функцию строки UCase для преобразования всех букв в данной строке в верхний регистр:

1234567891011 Sub UsingTheUCaseStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "это продукт"valueTwo = UCase (значениеOne)MsgBox valueTwoКонец подписки

Результат:

Функция UCase преобразовала все буквы в строке в верхний регистр.

Функция VBA StrConv

Функция VBA StrConv может преобразовывать буквы в тексте или строке в верхний регистр, нижний регистр, правильный регистр или Unicode в зависимости от указанного вами типа преобразования. Синтаксис строковой функции VBA StrConv:

StrConv (String, Conversion, [LCID]) где:

  • Строка - исходный текст.
  • Конверсия - желаемый тип конверсии.
  • [LCID] (По желанию) -Необязательный параметр, указывающий LocaleID. Если пусто, используется системный LocaleID.

В следующем коде показано, как использовать функцию StrConv String для преобразования строки в соответствующий регистр:

1234567891011 Подпрограмма UsingTheStrConvStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "это продукт"valueTwo = StrConv (значениеOne, vbProperCase)MsgBox valueTwoКонец подписки

Результат:

Вы указываете тип преобразования, которое хотите выполнить, используя параметр преобразования:

  • vbLowerCase преобразует все буквы в тексте в нижний регистр.
  • vbUpperCase преобразует все буквы в тексте в верхний регистр.
  • vbProperCase преобразует первую букву каждого слова в тексте в верхний регистр, а все остальные буквы остаются в нижнем регистре.
  • vbUnicode преобразует строку в Unicode.
  • vbFromUnicode преобразует строку из юникода в кодовую страницу системы по умолчанию.

Сравнение строк

Функция VBA StrComp

Строковая функция VBA StrComp позволяет сравнивать две строки. Функция возвращает:

  • 0, если две строки совпадают
  • -1, если строка1 меньше строки2
  • 1, если строка1 больше строки2
  • Нулевое значение, если одна из строк была Null

В следующем коде показано, как использовать функцию StrComp для сравнения двух строк:

123456789101112 Sub UsingTheStrCompStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаУменьшить результат сравнения как целое числоvalueOne = "AutomateExcel"valueTwo = "AutomateExcel"resultofComparison = StrComp (значениеOne, значениеTwo)Отладка. Распечатать результат сравненияКонец подписки

Результат:

Функция StrComp нашла точное совпадение между двумя строками и вернула 0.

Оператор Like VBA

Оператор Like VBA позволяет сравнить текст или строку с шаблоном и посмотреть, есть ли совпадение. Обычно оператор Like используется вместе с подстановочными знаками. В следующем коде показано, как использовать оператор Like:

123456789101112 Sub UsingTheLikeOperatorInVBA ()Тусклое значение: одно как строкаvalueOne = "Давайте посмотрим на результат"Если valueOne Like "* view *" ТогдаMsgBox «Есть совпадение, эта строка содержит слово view»ЕщеMsgBox "Совпадений не найдено"Конец, еслиКонец подписки

Результат:

Подстановочные знаки, которые вы можете использовать с оператором Like для поиска совпадений с образцом, включают:

  • ? что соответствует одиночному символу
  • # что соответствует одной цифре
  • * что соответствует нулю или более символов

В следующем коде показано, как использовать оператор Like и оператор? подстановочный знак, соответствующий шаблону в вашем коде:

123456789101112 Sub UsingTheLikeOperatorWithAWildcardInVBA ()Тусклое значение: одно как строкаvalueOne = "The"Если valueOne Like "?? e" ТогдаMsgBox "Есть совпадение, найден соответствующий шаблон"ЕщеMsgBox «Совпадений не найдено»Конец, еслиКонец подписки

Полученный результат:

Другие полезные строковые функции VBA

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

Функция замены VBA заменяет набор символов в строке другим набором символов. Синтаксис функции замены строки VBA:

Заменить (Строка, Найти, Заменить, [Начало], [Счетчик], [Сравнить]), где:

  • Строка - исходный текст.
  • Найти - подстрока для поиска в исходном тексте.
  • Заменить - подстрока, на которую нужно заменить подстроку поиска.
  • Начинать (По желанию)- Позиция для начала поиска из исходного текста. Если пусто, используется значение 1, и функция начинается с позиции первого символа.
  • Считать (По желанию)- Количество появлений заменяемой подстроки «Найти» в исходном тексте. Если пусто, заменяются все вхождения подстроки «Найти».
  • Сравнивать (По желанию)- Определяет тип сравнения, которое нужно сделать. Если пусто, используется двоичное сравнение.

    -vbBinaryCompare - двоичное сравнение
    -vbTextCompare - Сравнение текста
    -vbDatabaseCompare - сравнение базы данных (этот параметр используется только в Microsoft Access и представляет собой сравнение на основе базы данных).

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

1234567891011 Подпрограмма UsingTheReplaceStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "ProductABC"valueTwo = Replace (valueOne, «ABC», «XYZ»)MsgBox valueTwoКонец подписки

Результат:

Функция замены нашла подстроку ABC в ProductABC и заменила ее подстрокой XYZ.

Функция VBA StrReverse

Функция VBA StrReverse меняет местами символы в заданном тексте или строке. Синтаксис строковой функции VBA StrReverse:

StrReverse (String) где:

  • Строка - исходный текст.

В следующем коде показано, как использовать функцию VBA StrReverse для изменения символов в строке Product:

1234567891011 Подпрограмма UsingTheStrReverseStringFunction ()Тусклое значение: одно как строкаТусклое значение Два как строкаvalueOne = "Продукт"valueTwo = StrReverse (значениеOne)MsgBox valueTwoКонец подписки

Результат:

Строковая функция VBA Len

Функция VBA Len возвращает количество символов в текстовой строке. Синтаксис строковой функции VBA Len String:

Len (String) где:

  • Строка - исходный текст.

В следующем коде показано, как использовать функцию Len String для определения длины строки AutomateExcel:

1234567891011 Sub UsingTheLenFunction ()Тусклое значение: одно как строкаDim stringLength As IntegervalueOne = "AutomateExcel"stringLength = Len (значениеOne)Debug.Print stringLengthКонец подписки

Результат:

Функция Len подсчитала все символы в тексте AutomateExcel, который состоит из 13 букв.

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave