Vba excel сравнение строк

Обновлено: 07.07.2024

Напомним, что по умолчанию данные строкового типа имеют переменную длину и могут удлиняться (до длины в 2^31 символов) или укорачиваться. Однако такие строки занимают на 10 байт памяти больше, поэтому можно объявить строки фиксированной длины, явно указав количество символов.

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

8.2 Операции и функции для работы с символьными данными

Единственная операция, применяемая при работе со строками - конкатенация. Зато встроенных функций для работы достаточно много:

Действие Ключевые слова
Сравнение двух строк. StrComp
Преобразование строк. StrConv
Изменение регистра. Lcase, UCase
Создание строк, содержащих повторяющиеся символы. Space, String
Определение длины строки. Len
Форматирование строки. Format
Выравнивание строки. Lset, RSet
Обработка строк. InStr, Left, LTrim, Mid, Right, RTrim, Trim
Выбор типа сравнения строк. Option Compare
Работа с кодами ASCII и ANSI. Asc, Chr

Сравнение двух строк. Функция StrComp возвращает значение типа Variant (Integer), представляющее результат сравнения строк.

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

string1 - Обязательный. Любое допустимое строковое выражение.

string2 - Обязательный. Любое допустимое строковое выражение.

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

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

Инструкция Option Compare при ее использовании должна находиться в модуле перед любой процедурой и указывает способ сравнения строк (Binary или Text) для модуля. Если модуль не содержит инструкцию Option Compare, по умолчанию используется способ сравнения Binary

Инструкция Option Compare Binary задает сравнение строк на основе порядка сортировки, определяемого внутренним двоичным представлением символов. В Microsoft Windows порядок сортировки определяется кодовой страницей символов. В следующем примере представлен типичный результат двоичного порядка сортировки:

Инструкция Option Compare Text задает сравнение строк без учета регистра символов на основе системной национальной настройки. Тем же символам, что и выше, при сортировке с инструкцией Option Compare Text соответствует следующий порядок:

Преобразование строк. Функция StrConv имеет следующи синтаксис:

Здесь string - строковое выражение, которое следует преобразовать, conversion - значение типа Integer, Сумма значений, указывающих тип преобразования, которое следует выполнить.

vbUpperCase 1 Преобразование строки к верхнему регистру.

vbLowerCase 2 Преобразование строки к нижнему регистру.

vbProperCase 3 Преобразование первой буквы каждого слова в строке в прописную.

Вместо одной этой функции можно применять функции Lcase, Ucase.

Lcase - возвращает значение типа String, представляющее строку, преобразованную к нижнему регистру.

Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.

К нижнему регистру преобразуются только прописные буквы; строчные буквы и прочие символы остаются неизмененными.

Ucase - возвращает значение типа Variant (String), содержащее строку, преобразованную к верхнему регистру.

Обязательный аргумент строка представляет любое допустимое строковое выражение. Если строка имеет значение Null, возвращается значение Null.

К верхнему регистру преобразуются только строчные буквы; прописные буквы и прочие символы остаются неизменными.

Создание строк, содержащих повторяющиеся символы. Для создания таких строк применяют функции Space и String. Функция Space(число) формирует строку, а обязательный аргумент число указывает нужное число пробелов в строке. Ее удобно использовать для форматирования и очистки данных в строках фиксированной длины.

Функция String(number, character) содержит следующие аргументы:

number - Значение типа Long. Длина возвращаемой строки.

character - Значение типа Variant. Код символа или строковое выражение, первый символ которого используется при создании возвращаемой строки.

Определение длины строки. При работе со строками переменной длины удобно использовать функцию Len(строка), возвращую значение типа Long, содержащее число символов в строке

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

Здесь строка - строковое выражение, которое следует выровнять по левому краю строки переменная. Все оставшиеся символы в строке переменная LSet заменяет на пробелы. Если строка длиннее, чем переменная, LSet копирует в переменную столько начальных символов строки, сколько в ней поместится.

Rset - то же самое, но выравнивает строку по правому краю строковой переменной. Если длина строки переменная больше, чем строка, инструкция RSet заменяет все оставшиеся символы вплоть до начала строки переменная пробелами.

Обработка строк. Для разнообразной обработки строк применяются функции InStr, Left, LTrim, Mid, Right, RTrim, Trim.

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

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

start - числовое выражение, задающее позицию, с которой начинается каждый поиск. Если этот аргумент опущен, поиск начинается с первого символа строки. Указание аргумента start является обязательным, если указан аргумент compare.

string1 - Строковое выражение, в котором выполняется поиск.

compare - Указывает способ сравнения строк. Аргумент compare может быть опущен или иметь значение 0 или 1. Чтобы выполнить двоичное сравнение, следует указать 0 (это значение используется по умолчанию). Чтобы выполнить посимвольное сравнение без учета регистра, следует указать 1. Если аргумент compare опущен, способ сравнения строк определяется значением параметра инструкции Option Compare.

string2 найдена в string1 Позиция обнаруженной подстроки

Left - возвращает значение типа String, содержащее указанное число первых символов строки.

Здесь string - строковое выражение, из которого извлекаются символы. length - значение типа Variant (Long), числовое выражение, указывающее число возвращаемых символов. Если 0, возвращается пустая строка (""). Если значение length больше либо равняется числу символов в строке string, возвращается вся строка.

Для определения числа символов в строке string следует использовать функцию Len.

Ltrim, Rtrim, Trim - возвращают значение типа String, содержащее копию строки, из которой удалены пробелы, находившиеся в начале строки (LTrim), в конце строки (RTrim) или в начале и конце строки (Trim).

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

Mid - Возвращает значение типа Variant (String), содержащее указанное число символов строки.

Здесь string - строковое выражение, из которого извлекаются символы, start - значение типа Long. Позиция символа в строке string, с которого начинается нужная подстрока. Если start больше числа символов в строке string, функция Mid возвращает пустую строку ("").

length - значение типа Variant (Long). Число возвращаемых символов. Если этот аргумент опущен или превышает число символов, расположенных справа от позиции start, то возвращаются все символы от позиции start до конца строки.

Right - Возвращает значение типа String, содержащее указанное число последних символов строки.

Здесь string - строковое выражение, из которого извлекаются символы. length - значение типа Variant (Long). Числовое выражение, указывающее число возвращаемых символов. Если 0, возвращается пустая строка (""). Если превышает число символов в строке string, возвращается вся строка.

Asc - Возвращает значение типа Integer, представляющее код символа для первого символа строки.

Аргумент строка является любым допустимым строковым выражением. Если строка не содержит символов, возникает ошибка выполнения. Возвращаемые значения лежат в диапазоне 0 - 255.

Chr - возвращает значение типа String, содержащее символ, соответствующий указанному коду символа.

Обязательный аргумент кодСимвола является значением типа Long, определяющим символ.

Коды 0-31 соответствуют стандартным управляющим символам ASCII. Например, Chr(10) возвращает символ перевода строки. Обычным диапазоном значений аргумента кодСимвола является интервал 0-255.

Возвращает переменную Variant (Integer), показывающую результат сравнения строк.

Синтаксис

StrComp(string1, string2, [ сравнить ])

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

Part Описание
строка1 Обязательно. Любое допустимое строковое выражение.
строка2 Обязательно. Любое допустимое строковое выражение.
compare Необязательно. Задает тип сравнения строк. Если аргумент сравнения является Null,возникает ошибка. Если аргумент сравнение опущен, тип сравнения определяется параметром Option Compare.

Параметры

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

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

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

Функция StrComp имеет следующие возвращаемые значения:

Если StrComp возвращает
string1 меньше, чем string2 –1
string1 равна string2 0
string1 больше, чем string2 1
string1 или string2 равна Null Null

Пример

В этом примере используется функция StrComp для возврата результатов сравнения строк. Если третий аргумент — 1, выполняется текстовое сравнение; если третий аргумент 0 или пропущен, выполняется двоичное сравнение.

См. также

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

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


В нашей работе мы обычно проводим сравнения каждый раз. Эти сравнения могут быть по номерам текстов или любого рода данных. Что касается чисел, мы уже знаем, как мы делаем сравнение. Есть много математических методов для этого. Но как сравнить две строки, какой результат мы получим. STRCOMP в VBA - это функция сравнения строк. Он сравнивает две строки друг с другом и дает нам результат. Однако результат сравнения не является истинным или ложным. Есть три способа сравнить две строки в функции STRCOMP. Прежде чем мы углубимся в это, давайте посмотрим синтаксис этой функции.

Синтаксис StrComp в Excel VBA

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


Строка 1 - это строка, которая будет сравниваться со строкой 2. Методы сравнения являются необязательными для этой функции. Теперь давайте перейдем к методам сравнения в этой функции. В этой функции есть три типа методов сравнения:

Теперь, когда мы используем эту функцию, какой результат мы получим? Мы не получим истину или ложь с помощью этой функции сравнения. Вместо этого мы можем получить любой из следующих результатов:

  1. 0, если строки равны друг другу.
  2. 1, если строки не совпадают друг с другом.
  3. -1, если первая строка меньше строки 2.
  4. NULL, если для строки 1 и 2 нет значения.

Мы рассмотрим несколько различных примеров и посмотрим, как выполняется сравнение строк в VBA.

Как использовать функцию VBA StrComp в Excel?

Мы узнаем, как использовать функцию VBA StrComp с примером в Excel.

Вы можете скачать этот шаблон VBA StrComp Excel здесь - Шаблон VBA StrComp Excel

Пример № 1 - VBA StrComp

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

Шаг 1: Из вкладки разработчика, а затем из Visual Basic, чтобы войти в VB Editor.


Шаг 2. Вставьте модуль с вкладки «Вставка», чтобы начать писать коды в VBA.


Шаг 3: Дважды щелкните модуль на вкладке проекта и объявите подфункцию следующим образом.

Код:


Шаг 4: Нам нужно определить три переменные как строки, две будут содержать наш ввод, а другая будет хранить результат.

Код:


Шаг 5: В переменной A и B примите ввод от пользователя для двух строк следующим образом.

Код:


Шаг 6: Сравните обе строки в переменной A и B и сохраните значение в C, используя функцию STRCOMP, и используйте метод сравнения в качестве двоичного сравнения.

Код:


Шаг 7: Показать вывод, сохраненный в переменной C, используя функцию Msgbox.

Код:


Шаг 8: Теперь нажмите F5 для выполнения кода и введите две строки ввода следующим образом:



Шаг 9: Смотрите окончательный результат следующим образом.


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

Пример №2 - VBA StrComp

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

Шаг 1: В модуль, который мы вставили ранее, дважды щелкните его на вкладке проекта и объявите подфункцию, чтобы начать работу над вторым примером следующим образом.

Код:


Шаг 2: Нам нужно определить три переменные в виде строк, две будут содержать наш ввод, а другая будет хранить результат.

Код:


Шаг 3: В переменной A и B примите ввод от пользователя для двух строк следующим образом.

Код:


Шаг 4: Сравните обе строки в переменных A и B и сохраните значение в C с помощью функции STRCOMP и используйте метод сравнения в качестве текстового сравнения.

Код:


Шаг 5: Показать вывод, сохраненный в переменной C, используя функцию Msgbox.

Код:


Шаг 6: Теперь нажмите F5 и введите две строки ввода следующим образом.



Шаг 7: Смотрите окончательный результат следующим образом.


В результате мы получаем 0, так как сравнение текста не учитывает регистр, что означает, что строки равны.

Пример № 3 - VBA StrComp

Теперь у меня есть некоторые данные на листе 1 следующим образом. Я хочу выяснить, похожи ли данные в столбце A и столбце B друг на друга или нет. Посмотрите на данные ниже.


Шаг 1: Давайте поработаем в третьем примере для наших данных следующим образом.

Код:


Шаг 2: Активируйте лист 1, чтобы мы могли использовать его свойства.

Код:


Шаг 3: Объявите две переменные, одну как целое число, которое будет использоваться для цикла, и одну как строку, которая будет использоваться для хранения результата сравнения.

Код:


Шаг 4: Напишите следующий код для сравнения и используйте цикл for.

Код:


Шаг 5: Запустите приведенный выше код и посмотрите результат на листе 1 следующим образом.

Ни одна из строк не была равной в сравнении.

То, что нужно запомнить

  • Это функция сравнения.
  • Возвращает 0, 1, -1 или NULL в результате не true или false.
  • Если мы не предоставляем какой-либо из методов сравнения, то по умолчанию используется метод сравнения VbBinaryCompare.
  • Метод сравнения является необязательным аргументом для этой функции.

Рекомендуемые статьи

Это руководство по VBA StrComp. Здесь мы обсудим, как использовать функцию Excel VBA StrComp вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

В этой статье разберем работу со строками в VBA на примерах функций InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse.

Строки - это последовательность символов, которая может состоять либо из алфавитов, цифр, специальных символов, либо из всех них. Переменная называется строкой, если она заключена в двойные кавычки "".

Синтаксис

Примеры

Строковые функции

Существуют предопределенные функции VBA String, которые помогают разработчикам эффективно работать со строками. Ниже приведены методы String, поддерживаемые в VBA. Пожалуйста, нажмите на каждый из методов, чтобы знать подробно.

Название функции и описание

InStr

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

Синтаксис

Параметр Описание

  • Пуск - необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции слева направо.
  • String1 - требуемый параметр. Строка для поиска.
  • String2 - требуемый параметр. Строка, по которой выполняется поиск String1.
  • Compare - Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare - выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare - выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : 6
Line 2 : 0
Line 3 : 8
Line 4 : 9
Line 5 : 2
Line 6 : 16
Line 7 : 11

Возвращает первое вхождение указанной подстроки. Поиск происходит слева направо.

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

Синтаксис

Параметр Описание

  • String1 - требуемый параметр. Строка для поиска.
  • String2 - требуемый параметр. Строка, по которой выполняется поиск String1.
  • Пуск - необязательный параметр. Указывает начальную позицию для поиска. Поиск начинается с первой позиции справа налево.
  • Compare - Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare - выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare - выполняет сравнение текста

пример

Добавьте кнопку и установите следующую функцию.

После выполнения вышеуказанного скрипта он производит следующий результат.

Line 1 : 6
Line 2 : 6
Line 3 : 8
Line 4 : 0
Line 5 : 2
Line 6 : 2
Line 7 : 0

Возвращает первое вхождение указанной подстроки. Поиск происходит справа налево.

LCASE

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

Синтаксис

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : microsoft vbscript
Line 2 : ms vbscript
Line 3 : microsoft

Возвращает нижний регистр указанной строки.

UCase

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

Синтаксис

пример

Добавьте кнопку и поместите следующую функцию внутри нее.

После выполнения вышеуказанного скрипта он производит следующий вывод.

Line 1 : MICROSOFT VBSCRIPT
Line 2 : MS VBSCRIPT
Line 3 : MICROSOFT

Возвращает верхний регистр указанной строки.

Функция Left возвращает указанное количество символов с левой стороны данной входной строки.

Синтаксис

Параметр Описание

  • String - обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с левой стороны.
  • Длина - требуемый параметр. Целое число, определяющее количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : Mi
Line 2 : MS VB
Line 3 : microsoft

Возвращает определенное количество символов с левой стороны строки.

Right

Функция Right возвращает указанное количество символов с правой стороны данной входной строки.

Синтаксис

Параметр Описание

  • String - обязательный параметр. Строка ввода, из которой указанное число символов должно быть возвращено с правой стороны.
  • Длина - требуемый параметр. Целое число, которое задает количество возвращаемых символов.

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : pt
Line 2 : CRIPT
Line 3 : microsoft

Возвращает определенное количество символов с правой стороны строки.

Mid функция возвращает указанное количество символов из заданной входной строки.

Синтаксис

Параметр Описание

  • String - обязательный параметр. Строка ввода, из которой задано количество символов, которые нужно вернуть.
  • Начало - требуемый параметр. Целое число, определяющее начальную позицию строки.
  • Длина - необязательный параметр. Целое число, определяющее количество возвращаемых символов.

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : icrosoft VBScript
Line 2 : icros
Line 3 : osoft V

Возвращает определенное количество символов из строки на основе указанных параметров.

LTrim

Функция Ltrim удаляет пробелы с левой стороны строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете функцию, она производит следующий вывод.

After Ltrim : Microsoft VBScript

Возвращает строку после удаления пробелов в левой части указанной строки.

RTrim

Функция Rtrim удаляет пробелы с правой стороны строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After Rtrim : Microsoft VBScript

Возвращает строку после удаления пробелов в правой части указанной строки.

Функция Trim удаляет как ведущее, так и конечное пустое пространство данной входной строки.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

After trim : Microsoft VBScript

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

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

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Length of var1 is : 18
Length of var2 is : 36

Возвращает длину данной строки.

Replace

Функция Replace заменяет указанную часть строки на определенную строку, указанное количество раз.

Синтаксис

Параметр Описание

  • String - обязательный параметр. Строка ввода, которую нужно искать для замены.
  • Find - требуемый параметр. Часть строки, которая будет заменена.
  • Replacewith - обязательный параметр. Строка замены, которая будет заменена на параметр find.
  • Start - необязательный параметр. Задает начальную позицию, из которой нужно искать и заменять строку. Значение по умолчанию - 1.
  • Count - необязательный параметр. Указывает количество раз, которое должна выполняться замена.
  • Compare - Необязательный параметр. Указывает метод сравнения, который будет использоваться. Значение по умолчанию - 0.
  • 0 = vbBinaryCompare - выполняет двоичное сравнение
  • 1 = vbTextCompare - выполняет текстовое сравнение

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Возвращает строку после замены строки другой строкой.

Space

Функция Space заполняет строку конкретным количеством пробелов.

Синтаксис

Параметр Описание

Номер - требуемый параметр. Количество пробелов, которые мы хотим добавить к данной строке.

пример

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

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

StrComp

Функция StrComp возвращает целочисленное значение после сравнения двух заданных строк. Он может возвращать любое из трех значений -1, 0 или 1 на основе входных строк для сравнения.

  • Если String1 меньше String2, то StrComp возвращает -1
  • Если String1 равно String2, то StrComp возвращает 0
  • Если String1 больше String2, то StrComp возвращает 1

Синтаксис

Параметр Описание

  • String1 - требуемый параметр. Первое строковое выражение.
  • String2 - требуемый параметр. Второе строковое выражение.
  • Compare - Необязательный параметр. Указывает сравнение строк.Он может принимать следующие значения.
  • 0 = vbBinaryCompare - выполняет двоичное сравнение (по умолчанию)
  • 1 = vbTextCompare - выполняет сравнение текста

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :0
Line 2 :1
Line 3 :1
Line 4 :0
Line 5 :1

Возвращает целочисленное значение после сравнения двух указанных строк.

String

Функция String заполняет строку указанным символом для указанного количества раз.

Синтаксис

Параметр Описание

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

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 :$$$
Line 2 :****
Line 3 :ddddd
Line 4 :AAAAAA

Возвращает строку с указанным символом для указанного количества раз.

StrReverse

Функция StrReverse меняет указанную строку.

Синтаксис

пример

Добавьте кнопку и добавьте следующую функцию.

Когда вы выполняете вышеуказанную функцию, она производит следующий вывод.

Line 1 : TPIRCSBV
Line 2 : tpircSBV tsriF yM
Line 3 : 54.321

Возвращает строку после изменения последовательности символов данной строки.

Для данных типа String существует только одна операция - конкатенация (объединение). Например, результатом операции конкатенации трех строковых значений «Петр» & " " & «Иванович» будет строка «Петр Иванович». Возможно также использование другого оператора для операции конкатенации, например: «десяти» + «тысячник». Разница между этими выражениями состоит в том, что в первом случае операндами могут быть значения любого типа (они просто будут преобразовываться в строковые), а во втором - оба операнда должны иметь тип String.

Для работы со строками существует большое количество функций (таблица. Функции работы со строками).

Таблица «Функции работы со строками»

Функция Описание Пример
Len(str) Определяет длину строки Из а=lеn("Персонажи") следует а=9
Left (<строка>, <длина>) Выделяет из аргумента <строка> указанное количество символов слева Left(" 1234string", 4) ="1234"
Right(<строка>, <длина>) Выделяет из аргумента <строка> указанное количество символов справа Right(" 1234string", 6) ="string"
Mid(<строка>, <старт> [, <длина>]) Выделяет из аргумента <строка> подстроку с указанным числом символов, начиная с позиции <старт> Mid ("12345678", 4, 3) ="456"
Mid(<строка>, <старт>) Выделяется подстрока от позиции <старт> до конца строки Mid ("12345678", 4) ="45678"
LTrim (<строка>) Удаляет пробелы в начале строки LTrim(" печать") ="печать"
RTrim (<строка>) Удаляет пробелы в конце строки RTrim("печать ") ="печать"
Trim (<строка>) Удаляет пробелы в начале и в конце строки Trim(" печать ") ="печать"
InStr([<старт>, ] < строка 1>, <строка 2> [, <сравнение>]) Производит поиск подстроки в строке. Возвращает позицию первого вхождения строки <строка 2> в строку <строка 1>, <старт> - позиция, с которой начинается поиск. Если этот аргумент пропущен, поиск начинается с начала строки Instr("C:Temp test.mdb", "Test")=9 Если искомая строка не находится в указанной строке, функция возвращает 0
InStrRev ([<старт>, ] <строка 1>, <строка 2> [, <сравнение>]) Ищет подстроку в строке, но начинает поиск с конца строки и возвращает позицию последнего вхождения подстроки. Необязательный аргумент <сравнение> определяет тип сравнения двух строк
Replace (<строка>, <строка Поиск>, <строка Замена>) Позволяет заменить в строке одну подстроку другой. Эта функция ищет все вхождения аргумента <строка Поиск> в аргументе <строка> и заменяет их на <строка Замена>

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

Следующие три функции позволяют работать с массивом строк

  • Split (<строка> [, <разделитель>]) - преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Это тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».
  • Join (<массив Строк> [, <разделитель>]) - преобразует массив строк в одну строку с указанным разделителем.
  • Filter (<массив Строк>, <строка Поиск>[, <включение>] [, <сравнение>]) - просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.

Эта функция имеет четыре аргумента:

  • <строка Поиск> - искомая строка;
  • <включение> - параметр (boolean значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;
  • <сравнение> - параметр, определяющий метод сравнения строк.

Еще три функции обеспечивают преобразование строк:

  • LCase (<строка>) - преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;
  • UCase (<строка>) - преобразует все символы строки к верхнему регистру;
  • StrConv (<строка>, <преобразование>) - выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».

И последние две функции генерируют строки символов

  • Space (<число>) - создает строку, состоящую из указанного числа пробелов;
  • String (<число>, <символ>) - создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.

Пример

1 метка: сообщается длина строки, введенной в первое текстовое поле (1 строка);

2 метка: преобразует все символы третьего текстового поля (3 строка) в заглавные буквы;

3 метка: выводит вместе содержание первого и второго текстовых полей (1 и 2 строки).

Хороший фреймворк (framework) лучшее решение для безпроблемной работы со строками.

Читайте также: