Эксель vba строковые функции

Эксель vba строковые функции

Для данных типа 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([ , ] , [, ]) Производит поиск подстроки в строке. Возвращает позицию первого вхождения строки в строку , — позиция, с которой начинается поиск. Если этот аргумент пропущен, поиск начинается с начала строки Instr("C:Temp test.mdb", "Test")=9 Если искомая строка не находится в указанной строке, функция возвращает 0
InStrRev ([ , ] , [, ]) Ищет подстроку в строке, но начинает поиск с конца строки и возвращает позицию последнего вхождения подстроки. Необязательный аргумент определяет тип сравнения двух строк
Replace ( , , ) Позволяет заменить в строке одну подстроку другой. Эта функция ищет все вхождения аргумента в аргументе и заменяет их на

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

Для сравнения строковых значений также применяется оператор Like, который позволяет обнаруживать неточное совпадение, например выражение «Входной сигнал» Like «Вход*» будет иметь значение True, так как сравниваемая строка начинается со слова «Вход». Символ звездочка (*) в строке заменяет произвольное число символов. Другие символы, которые обрабатываются оператором Like в сравниваемой строке:

  • ? — любой символ (один);
  • #- одна цифра (0-9);
  • [ ] — символ, совпадающий с одним из символов списка;
  • [! ] — символ, не совпадающий ни с одним из символов списка.
Читайте также:  Подключение фоторезистора к arduino

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

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

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

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

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

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

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

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

Пример

Создать программу, работающую со строковыми переменными. Для этого создать форму, в метки которой выходят следующие сообщения:

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

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

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

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

Технология выполнения

  • Откройте приложение Word, сохраните документ и перейдите в редактор VBA.
  • Создайте форму аналогично приведенному рисунку.
  • Пропишите обработчик события кнопки ОК.
  • Откомпилируйте программу.
  • Запустите форму на выполнение.
Читайте также:  Как снять блокировку экрана на sony xperia

Форма примера в режиме конструктора и в рабочем состоянии

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

В VBA существует несколько функций для обработки строк. Mid(вырезка), Len (длина), InStr(поиск), Left (вырезка слева), Right (вырезка справа), Trim (убирает пробелы слева и справа), StrComp (сравнение строк) и др.

Приведем пример обработки строк.

Задача: В строке подсчитать количество цифр.

Функция Mid

Общий вид функции Mid:

Функция Mid возвращает вырезку из строки Строка, начиная со позиции Начальная_позиция, длиною Длина.

Функция Len

Общий вид функции Len:

Функция Len возвращает длину строки Строка.

Функция InStr

Общий вид функции InStr:

Функция InStr номер первого вхождения в строке Строка1 строки Строка2, начиная с позиции Нач_позиция.

Самая актуальная документация по Visual Studio 2017: Документация по Visual Studio 2017.

В следующей таблице перечислены имеющиеся в Visual Basic функции поиска в строках и работы с ними.

Метод .NET Framework Описание
Asc, AscW Возвращает значение типа Integer , представляющее код знака, соответствующий знаку.
Chr, ChrW Возвращает знак, связанный с указанным кодом знака.
Filter Возвращает массив (с индексацией от нуля), который содержит подмножество массива типа String , выделяемое согласно указанным условиям фильтрации.
Format Возвращает строку, отформатированную в соответствии с инструкциями, содержащимися в формате выражения String .
FormatCurrency Возвращает выражение в формате денежной единицы с использованием символа денежной единицы, определенного в системной панели управления.
FormatDateTime Возвращает строковое выражение, представляющее значение даты и времени.
FormatNumber Возвращает выражение в формате числа.
FormatPercent Возвращает выражение в формате процента (т. е. с коэффициентом 100), в конец которого добавлен знак %.
InStr Возвращает целое число, указывающее начальную позицию первого вхождения одной строки в другую.
InStrRev Возвращает позицию первого вхождения одной строки в другую, начиная с правого конца строки.
Join Возвращает строку, образуемую путем соединения нескольких подстрок, содержащихся в массиве.
LCase Возвращает строку или символ, преобразованные в нижний регистр.
Left Возвращает строку, содержащую указанное число знаков с левой стороны строки.
Len Возвращает целое число, показывающее число знаков в строке.
LSet Возвращает выровненную по левому краю строку запрашиваемой длины, содержащую указанную строку.
LTrim Возвращает строку, содержащую копию указанной строки без пробелов в начале.
Mid Возвращает строку, содержащую указанное число знаков строки.
Replace Возвращает строку, в которой указанная подстрока заданное число раз заменена другой подстрокой.
Right Возвращает строку, содержащую указанное число знаков с правой стороны строки.
RSet Возвращает выровненную по правому краю строку, содержащую указанную строку, настроенную под указанную длину.
RTrim Возвращает строку, содержащую копию указанной строки без пробелов в конце.
Space Возвращает строку, состоящую из указанного числа пробелов.
Split Возвращает одномерный массив (с индексацией от нуля), содержащий указанное число подстрок.
StrComp Возвращает -1, 0 или 1 в зависимости от результата сравнения строк.
StrConv Возвращает строку, преобразованную как указано.
StrDup Возвращает строку или объект, состоящие из указанного знака, повторенного определенное количество раз.
StrReverse Возвращает строку, содержащую те же знаки, что и в заданной строке, но в противоположном порядке.
Trim Возвращает строку, содержащую копию указанной строки без пробелов в начале и конце.
UCase Возвращает строку или знак, содержащий указанную строку, преобразованную в верхний регистр.
Читайте также:  Что такое топология локальной сети

С помощью оператора Option Compare можно указать, следует ли выполнять сравнение строк с использованием порядка сортировки текста без учета регистра, определяемого языковым стандартом системы ( Text ), или же вести сортировку по внутренним двоичным представлениям знаков ( Binary ). По умолчанию задан метод сравнения текста Binary .

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

В данном примере функция LTrim используется, чтобы убрать пробелы в начале, а функция RTrim — чтобы убрать пробелы в конце строковой переменной. Функция Trim в примере используется для удаления обоих типов пробелов.

В данном примере функция Mid используется для возврата указанного числа знаков строки.

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

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

В данном примере показаны различные способы использования функции Format для форматирования значений с применением как форматов String , так и определенных пользователем форматов. Фактическое отображение системой разделителя даты ( / ), разделителя времени ( : и индикаторов AM/PM ( t и tt ) зависит от региональных параметров, применяемых кодом. При отображении времени и даты в среде разработки используется короткий формат времени и даты региональных установок кода.

Примечание

Для языков, использующих 24-часовой формат, индикаторы AM/PM ( t и tt ) не отображаются.

Ссылка на основную публикацию
Что такое селфи википедия
Се́лфи (англ. selfie , от «self» — сам, себя; русские эквиваленты — «себя́шка», «самостре́л» — считаются просторечными [1] ) —...
Что делать если завис телефон андроид
Что делать, если завис Андроид и не реагирует не на что? В этой статье мы посмотрим четыре простых способа как...
Что дают за рейтинговые бои
В кои-то веки разработчики решили прислушаться к мнению игроков и ввести в Варфейс рейтинговые матчи. Теперь каждый игрок, достигший 26...
Что такое серийный номер продукта
Все варианты «товарных» EPC, без исключения, имеют в себе поле для хранения серийного номера того конкретного объекта (товара или упаковки),...
Adblock detector