Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Vba excel strcomp

Примеры использования функций VBA

Удаление ненужных символов

Зачастую строки в программе содержат ненужные символы пробелов в конце или в начале строки, которые необходимо удалить, т.к. посторонние начальные или конечные пробелы в строке могут вызвать «неполадки» в работе программы.

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

Определение длины строки

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

Следует быть внимательными со строками фиксированной длины. Поскольку строка фиксированной длины имеет всегда одну и ту же длину, функция Len всегда возвращает объявленную длину строки, независимо от фактической длины строки. Например, если в строковой переменной фиксированной длины StrokeName, имеющей длину 15 символов, фактически находится слово «солнце», то функция Len(StrokeName) возвратит результат 15. Чтобы в таком случае узнать фактическую длину строки (в нашем случае — 6), необходимо использовать следующую комбинацию функций: Len(Trim(StrokeName)).

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

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

Функция StrComp

StrComp (String1, String2 [, Compare])

String1, String2 — любые два строковых выражения, которые необходимо сравнивать.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

  • vbBinaryCompare — бинарное сравнение двух строк;
  • vbTextCompare — текстовое сравнение двух строк;
  • vbDatabaseCompare — используется только в Microsoft Access.

При выполнении StrComp возвращается одно из следующих значений:

  • -1, если String1 меньше String2;
  • 0, если String1 и String2 равны;
  • 1, если String1 больше String2.

В вышеприведенном листинге в текстовом режиме сравниваются две строки: «Строка по умолчанию» и » Строка по умолчанию». Результат сравнения = 1, т.е. «Строка по умолчанию» больше, чем » Строка по умолчанию».

Поэкспериментируйте с разнообразными строками для лучшего понимания работы функции StrComp.

Функция InStr

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

StrComp ([Start, ] String1, String2 [, Compare])

String1, String2 — любые допустимые строковые выражения. Функция проверяет содержится ли String1 в String2.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

  • vbBinaryCompare — бинарное сравнение двух строк;
  • vbTextCompare — текстовое сравнение двух строк;
  • vbDatabaseCompare — используется только в Microsoft Access.

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

InStr возвращает число, обозначающее положение символа в String1, где было обнаружено String2. Если InStr не находит String2 в String1, то возвращается 0. Если String1 (или String2) имеет значение Null, то функция также возвращает Null.

Разбиение строки

Иногда возникает необходимость разбиения строки на составляющие части. В VBA эту задачу решают три функции: Left, Right, Mid.

Функция Left

Left (String, Length)

String — любое допустимое строковое выражение.

Length — любое численное значение.

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

Функция Right

Right (String, Length)

String — любое допустимое строковое выражение.

Length — любое численное значение.

Функция возвращает копию String, начиная с последнего символа и включая справа налево количество символов, заданных с помощью Length. Если Length является числом, большим, чем фактическая длина String, то возвращается все строковое выражение String. Функция Right всегда копирует символы от конца строки к ее началу.

Функция Mid

Mid (String, Start, [, Length])

String — любое допустимое строковое выражение.

Length, Start — любые численные значения.

Функция Mid возвращает копию String, начиная с положения символа в String, задаваемого с помощью аргумента Start . Необязательный аргумент Length определяет количество копируемых в Mid символов из String. Если Start содержит большее число, чем фактическая длина String, то возвращается пустая строка.

Символы, которые нельзя ввести с клавиатуры

Зачастую случается, что надо ввести какой-либо символ, для которого отсутствует клавиша на клавиатуре (например, символ копирайта). Другая ситуация — когда надо в строку включить служебный символ VBA (самый распространенный случай — включение двойных кавычек).

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

Charcode — любое численное выражение, являющееся допустимым кодом для набора символов, используемого компьютером. Должен быть целым числом от 0 до 255.

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

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

  • vbCr — символ возврата каретки. Эквивалент Chr(13)
  • vbLf — символ смещения на одну строку. Эквивалент Chr(10)
  • vbCrLf — символ возврата каретки+смещения на одну строку. Эквивалент Chr(13)+ Chr(10)
  • vbTab — символ табуляции. Эквивалент Chr(9)

Для просмотра списка код-символ надо открыть справочную систему VBA и по запросу «character sets» будет представлена соответствующая таблица.


Форматирование значений данных

Очень часто формат данных на выходе программы по тем или иным причинам нас не совсем устраивает. Эту задачу решает функция Format.

VBA-функция Format идентична функции Format в Excel и использует те же символы-заполнители форматирования данных.

Format (Expression [, Format[, Firstdayofweek [, Firstweekofyear]]])

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

Format — допустимое выражение именованного или определенного пользователем формата.

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

Firstweekofyear — константа, которая определяет первую неделю года.

Чтобы использовать функцию Format, надо либо задать предопределенный формат, либо создать образ определенного формата, используя символы-заполнители.

Работа со строками в VBA: InStr, LCASE, UCase, Left, Right, Mid, LTrim, RTrim, Trim, Len, Replace, Space, StrComp, String, StrReverse

В этой статье разберем работу со строками в 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 — выполняет текстовое сравнение

пример

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

Line 1: This is MS VBScript Programming
Line 2: This is vbScript Programming
Line 3: Th## ## VBScript Programming
Line 4: ## VBScript Programming
Line 5: Thi## i## VBScript Programming
Line 6: This is VBSc##ipt P##og##amming
Line 7: This is VBScrip## Programming

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

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

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

Функция StrComp

Задание3 Примеры использования функций VBA

Задание2. Создание переменной

Задание1

Создание окон сообщений и окон ввода.

Лабораторная работа №8

Изучите материалы лекций, проделайте все перечисленные примеры на практике. Продемонстрируйте выполнение преподавателю.

Самым простым способом создания переменной является использование ее в операторе VBA. При этом VBA создает переменную и резервирует память для переменной. Сохранение значения данных в переменной называется присваиванием переменной. Делается это с помощью оператора присваивания (=).

Этот оператор сохраняет численное значение 120 в ячейке памяти, заданной переменной Sum.

Такое объявление переменной называется «неявным объявлением переменной» или «объявление переменной на лету». Все переменные, которые VBA создает подобным образом, имеют тип данных Variant.

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

Поэтому, VBA предоставляет возможность выполнить явное объявление переменной. Это несет следующие преимущества:

Ускоряется выполнение кода;

Уменьшается количество потенциальных ошибок при написании кода;

Улучшается читабельность программного кода;

Нормализуется выделение заглавными буквами в имени переменной (т.е., если вы явно объявили имя переменной как «AllSumm», то при написании в теле кода этой переменной, как allsumm, автоматически произойдет замена на AllSumm)

Для явного объявления переменной используется оператор Dim (Dimension).

Dim name1 [, name2…]

nameN — любой допустимый идентификатор переменной.
Идентификатор — это имя, которое дается элементам в создаваемых процедурах и модулях, таким как переменные. Это обусловлено тем фактом, что создаваемые имена определяют конкретные участки памяти (имя переменной), группы инструкций (макрос или процедура).

Например:
Dim MyValue
Dim Value_1, Value_2

Все переменные, созданные подобным образом, являются переменными типа Variant.

Когда VBA создает новую переменную, эта переменная инициализируется (переменной присваивается некоторое значение «по умолчанию»):

строки инициализируются пустыми строками;

числа — значением 0;

Читать еще:  Ярлыки листов в excel 2020

переменные типа Boolean — False;

даты — 30 декабря 1899

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

Все переменные в VBA, независимо от того, объявляются ли они неявно или явно, являются переменными типа Variant, если только не задается тип переменной в объявляющем ее операторе. Объявление типизированных переменных имеет ряд преимуществ:

Типизированные переменные ускоряют выполнение кода программы;

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

Программный код с типизированными переменными легче читается и понимается;

В программах, использующих типизированные переменные, легче обнаружить некоторые ошибки программистов;

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

Тип переменной объявляется в том же операторе, который используется для объявления самой переменной. Можно объявлять типизированную переменную либо при неявном объявлении, либо при явном — с помощью оператора Dim.

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

Dim varname_1 [As type1] [, varname_2 [As type2]..]

Varname_N — любое допустимое имя переменной

Type_N — любое из имен типов данных VBA

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

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

Dim varname As String * N

Varname — любое допустимое имя переменной

N — целое число, указывающее длину строки

Область действия переменных

Любая переменная имеет свою область действия.

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

Переменные, процедуры и идентификаторы, которые доступны только в процедуре, имеют область действия процедурного уровня, а те, которые доступны для всех процедур в модуле, имеют область действия модульного уровня.

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

В первой строке, приведенного выше листинга, объявлена переменная А модульного типа. Однако в процедуре example_02 имеется свое объявление переменной А. VBA выбирает наиболее локальную переменную А, объявленную как переменная процедурного уровня.

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

Если вы хотите всегда использовать только явное объявление переменных, то для таких целей VBA предоставляет команду Option Explicit. При использовании Option Explicit VBA требует объявления всех переменных перед их использованием.

В настройках редактора VBA можно указать, чтобы команда Option Explicit автоматически включалась в новый модуль.

Удаление ненужных символов

Зачастую строки в программе содержат ненужные символы пробелов в конце или в начале строки, которые необходимо удалить, т.к. посторонние начальные или конечные пробелы в строке могут вызвать «неполадки» в работе программы.

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

Определение длины строки

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

Следует быть внимательными со строками фиксированной длины. Поскольку строка фиксированной длины имеет всегда одну и ту же длину, функция Len всегда возвращает объявленную длину строки, независимо от фактической длины строки. Например, если в строковой переменной фиксированной длины StrokeName, имеющей длину 15 символов, фактически находится слово «солнце», то функция Len(StrokeName) возвратит результат 15. Чтобы в таком случае узнать фактическую длину строки (в нашем случае — 6), необходимо использовать следующую комбинацию функций: Len(Trim(StrokeName)).

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

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

StrComp (String1, String2 [, Compare])

String1, String2 — любые два строковых выражения, которые необходимо сравнивать.

Compare — необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):

vbBinaryCompare — бинарное сравнение двух строк;

vbTextCompare — текстовое сравнение двух строк;

vbDatabaseCompare — используется только в Microsoft Access.

При выполнении StrComp возвращается одно из следующих значений:

-1, если String1 меньше String2;

0, если String1 и String2 равны;

1, если String1 больше String2.

В вышеприведенном листинге в текстовом режиме сравниваются две строки: «Строка по умолчанию» и » Строка по умолчанию». Результат сравнения = 1, т.е. «Строка по умолчанию» больше, чем » Строка по умолчанию».

Поэкспериментируйте с разнообразными строками для лучшего понимания работы функции StrComp.

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

  • 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)

    Dim sStr As String sStr = «Hello, World!» MsgBox Replace(sStr, «Hello», «Bay»)

    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().
  • Строки в VBA

    удалить из строки знак » и знак =

    Вариант1

    Вариант

    Можно еще через байтовый массив:

    Вариант

    Или фильтрацию мидом:

    Строку 6 можно заменить лайкой:
    Код Visual Basic
    1
    If L Like «[!»»=]» Then Zam = Zam + L

    Вариант

    Еще через поиск позиции и рекурсию:

    Еще можно через регулярные выражения, но я их не знаю.

    Вариант

    Через поиск справа налево и рекурсию:

    Вариант

    А ещё есть Split и Join

    В верхний и в нижний регистр

    или StrConv() — преобразовать строку (в Unicode и обратно, в верхний и нижний регистр, сделать первую букву слов заглавной и т.п.) — см. ниже

    Операции со строками

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

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

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

    • ? – любой символ (один);
    • #– одна цифра (0–9);
    • [ ] – символ, совпадающий с одним из символов списка;
    • [! ] – символ, не совпадающий ни с одним из символов списка.
    • ASC()— эта функция позволяет вернуть числовой код для переданного символа. Например, ASC( «D» ) вернет 68. Эту функцию удобно использовать для того, чтобы определить следующую или предыдущую букву. Обычно она используется вместе с функцией Chr(), которая производит обратную операцию — возвращает символ по переданному его числовому коду.Варианты этой функции — AscB() и AscW():
      • AscB() — возвращает только первый байт числового кода для символа.
      • AscW() — возвращает код для символа в кодировке Unicode
    • Chr() — возвращает символ по его числовому коду. Может использоваться в паре с функцией Asc(), но чаще всего её применяют, когда нужно вывести служебный символ (например кавычки — » ), т.к. кавычки просто так в VBA-коде не ввести(нужно ставить двойные). Я обычно именно эту функцию и использую.

      Есть варианты этой функции — ChrB() и ChrW(). Работают аналогично таким же вариантам для функции Asc().
      InStr() и InStrRev()— одна из самых популярных функций. Позволяет обнаружить в теле строковой переменной символ или последовательность символов и вернуть их позицию. Если последовательность не обнаружена, то возвращается 0.

      Разница функций в том, что InStr() ищет указанное слово от начала строки, а InStrRev() с конца строки
      Left(), Right(), Mid()— возможность взять указанное вами количество символов из существующей строковой переменной слева, справа или из середины соответственно.

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

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

      * применимо для локализаций Дальнего востока
      ** применимо только для Японии
      *** не поддерживается операционными системами под управлением Macintosh

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

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

    Split ( [, ]) – преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель. Например, Split(3, «Этo тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение». Join ( [, ]) – преобразует массив строк в одну строку с указанным разделителем. Filter( , [, ] [, ]) – просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой. Эта функция имеет четыре аргумента: – искомая строка; – параметр (булевское значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки; – параметр, определяющий метод сравнения строк. Еще три функции обеспечивают преобразование строк: LCase( ) – преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»; UCase( ) – преобразует все символы строки к верхнему регистру; StrConv( , ) – выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия», VbProperCase) возвращает значение «Россия».

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

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

    Пример

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

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

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

    Private Sub CommandButton1_Click() Dim a As String Dim b As String Dim c As String Dim k As String Dim d As String Dim n As Integer a=TextBox1.Text n=Len(a) Label7.Caption=«длина первой строки равна» & n & « символам» c=TextBox3.Text k=Ucase(с) Label8.Caption=k b=TextBox2.Text d=a + » » + b Label9.Caption=d End Sub

    Задача

    Нужно, что бы в экселе в ячейке А1 выполнялся поиск слов, записанных через запятую в столбец А2, а результат, и найденные слова, с числом их повторений (если такое возможно) в искомом тексте, записались в другую, третью, ячейку. (ещё лучше бы было, если б они выделялись (ну или подчеркивались) каким ни будь образом в первой ячейке…что бы их сразу видно было Вот так загоняешь в массив слова:

    Ссылка на основную публикацию
    ВсеИнструменты
    Adblock
    detector
    ×
    ×