Excel vba поиск в строке символа

Excel 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);
  • [ ] – символ, совпадающий с одним из символов списка;
  • [! ] – символ, не совпадающий ни с одним из символов списка.

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

  • 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.
  • Создайте форму аналогично приведенному рисунку.
  • Пропишите обработчик события кнопки ОК.
  • Откомпилируйте программу.
  • Запустите форму на выполнение.

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

Источник: msk.edu.ua

Поиск на листе Excel

Поиск какого-либо значения в ячейках Excel довольно часто встречающаяся задача при программировании какого-либо макроса. Решить ее можно разными способами. Однако, в разных ситуациях использование того или иного способа может быть не оправданным. В данной статье я рассмотрю 2 наиболее распространенных способа.

Поиск перебором значений

Довольно простой в реализации способ. Например, найти в колонке “A” ячейку, содержащую “123” можно примерно так:

Минусами этого так сказать “классического” способа являются: медленная работа и громоздкость. А плюсом является его гибкость, т.к. таким способом можно реализовать сколь угодно сложные варианты поиска с различными вычислениями и т.п.

Поиск функцией Find

Гораздо быстрее обычного перебора и при этом довольно гибкий. В простейшем случае, чтобы найти в колонке A ячейку, содержащую “123” достаточно такого кода:

Вкратце опишу что делают строчки данного кода:
1-я строка: Выбираем в книге лист “Данные”;
2-я строка: Осуществляем поиск значения “123” в колонке “A”, результат поиска будет в fcell;
3-я строка: Если удалось найти значение, то fcell будет содержать Range-объект, в противном случае – будет пустой, т.е. Nothing.

Полностью синтаксис оператора поиска выглядит так:

Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

What – Строка с текстом, который ищем или любой другой тип данных Excel

After – Ячейка, после которой начать поиск. Обратите внимание, что это должна быть именно единичная ячейка, а не диапазон. Поиск начинается после этой ячейки, а не с нее. Поиск в этой ячейке произойдет только когда весь диапазон будет просмотрен и поиск начнется с начала диапазона и до этой ячейки включительно.

LookIn – Тип искомых данных. Может принимать одно из значений: xlFormulas (формулы), xlValues (значения), или xlNotes (примечания).

LookAt – Одно из значений: xlWhole (полное совпадение) или xlPart (частичное совпадение).

SearchOrder – Одно из значений: xlByRows (просматривать по строкам) или xlByColumns (просматривать по столбцам)

SearchDirection – Одно из значений: xlNext (поиск вперед) или xlPrevious (поиск назад)

MatchCase – Одно из значений: True (поиск чувствительный к регистру) или False (поиск без учета регистра)

MatchByte – Применяется при использовании мультибайтных кодировок: True (найденный мультибайтный символ должен соответствовать только мультибайтному символу) или False (найденный мультибайтный символ может соответствовать однобайтному символу)

SearchFormat – Используется вместе с FindFormat. Сначала задается значение FindFormat (например, для поиска ячеек с курсивным шрифтом так: Application.FindFormat.Font.Italic = True), а потом при использовании метода Find указываем параметр SearchFormat = True. Если при поиске не нужно учитывать формат ячеек, то нужно указать SearchFormat = False.

Чтобы продолжить поиск, можно использовать FindNext (искать “далее”) или FindPrevious (искать “назад”).

Примеры поиска функцией Find

Пример 1: Найти в диапазоне “A1:A50” все ячейки с текстом “asd” и поменять их все на “qwe”

Обратите внимание : Когда поиск достигнет конца диапазона, функция продолжит искать с начала диапазона. Таким образом, если значение найденной ячейки не менять, то приведенный выше пример зациклится в бесконечном цикле. Поэтому, чтобы этого избежать (зацикливания), можно сделать следующим образом:

Читайте также:  Как в excel увеличить строку

Пример 2: Правильный поиск значения с использованием FindNext, не приводящий к зацикливанию.

В ниже следующем примере используется другой вариант продолжения поиска – с помощью той же функции Find с параметром After. Когда найдена очередная ячейка, следующий поиск будет осуществляться уже после нее. Однако, как и с FindNext, когда будет достигнут конец диапазона, Find продолжит поиск с его начала, поэтому, чтобы не произошло зацикливания, необходимо проверять совпадение с первым результатом поиска.

Пример 3: Продолжение поиска с использованием Find с параметром After.

Следующий пример демонстрирует применение SearchFormat для поиска по формату ячейки. Для указания формата необходимо задать свойство FindFormat.

Пример 4: Найти все ячейки с шрифтом “курсив” и поменять их формат на обычный (не “курсив”)

Примечание: В данном примере намеренно не используется FindNext для поиска следующей ячейки, т.к. он не учитывает формат (статья об этом: https://support.microsoft.com/ru-ru/kb/282151)

Коротко опишу алгоритм поиска Примера 4. Первые две строки определяют последнюю строку (lLastRow) на листе и последний столбец (lLastCol). 3-я строка задает формат поиска, в данном случае, будем искать ячейки с шрифтом Italic. 4-я строка определяет область ячеек с которой будет работать программа (с ячейки A1 и до последней строки и последнего столбца). 5-я строка осуществляет поиск с использованием SearchFormat. 6-я строка – цикл пока результат поиска не будет пустым. 7-я строка – меняем шрифт на обычный (не курсив), 8-я строка продолжаем поиск после найденной ячейки.

Хочу обратить внимание на то, что в этом примере я не стал использовать “защиту от зацикливания”, как в Примерах 2 и 3, т.к. шрифт меняется и после “прохождения” по всем ячейкам, больше не останется ни одной ячейки с курсивом.

Свойство FindFormat можно задавать разными способами, например, так:

Следующий пример – применение функции Find для поиска последней ячейки с заполненными данными. Использованные в Примере 4 SpecialCells находит последнюю ячейку даже если она не содержит ничего, но отформатирована или в ней раньше были данные, но были удалены.

Пример 5: Найти последнюю колонку и столбец, заполненные данными

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

При поиске можно так же использовать шаблоны, чтобы найти текст по маске, следующий пример это демонстрирует.

Пример 6: Выделить красным шрифтом ячейки, в которых текст начинается со слова из 4-х букв, первая и последняя буквы “т”, при этом после этого слова может следовать любой текст.

Для поиска функцией Find по маске (шаблону) можно применять символы:
* – для обозначения любого количества любых символов;
? – для обозначения одного любого символа;

– для обозначения символов *, ? и

. (т.е. чтобы искать в тексте вопросительный знак, нужно написать

?, чтобы искать именно звездочку (*), нужно написать

* и наконец, чтобы найти в тексте тильду, необходимо написать

Поиск даты с помощью Find

Если необходимо найти текущую дату или какую-то другую дату на листе Excel или в диапазоне с помощью Find, необходимо учитывать несколько нюансов:

  • Тип данных Date в VBA представляется в виде #[месяц]/[день]/[год]#, соответственно, если необходимо найти фиксированную дату, например, 01 марта 2018 года, необходимо искать #3/1/2018#, а не “01.03.2018”
  • В зависимости от формата ячеек, дата может выглядеть по-разному, поэтому, чтобы искать дату независимо от формата, поиск нужно делать не в значениях, а в формулах, т.е. использовать LookIn:=xlFormulas

Приведу несколько примеров поиска даты.

Пример 7: Найти текущую дату на листе независимо от формата отображения даты.

Пример 8: Найти 1 марта 2018 г.

Искать часть даты – сложнее. Например, чтобы найти все ячейки, где месяц “март”, недостаточно искать “03” или “3”. Не работает с датами так же и поиск по шаблону. Единственный вариант, который я нашел – это выбрать формат в котором месяц прописью для ячеек с датами и искать слово “март” в xlValues.

Тем не менее, можно найти, например, 1 марта независимо от года.

Пример 9: Найти 1 марта любого года.

Источник: codernotes.ru

Строковые функции (Visual Basic) String Functions (Visual Basic)

В следующей таблице перечислены функции, которые Visual Basic предоставляет в классе Microsoft.VisualBasic.Strings для поиска строк и управления ими. The following table lists the functions that Visual Basic provides in the Microsoft.VisualBasic.Strings class to search and manipulate strings. Их можно рассматривать как Visual Basic встроенных функций; то есть вам не нужно вызывать их как явные члены класса, как показано в примерах. They can be regarded as Visual Basic intrinsic functions; that is, you do not have to call them as explicit members of a class, as the examples show. Дополнительные методы и в некоторых случаях дополняют методы, доступны в классе System.String. Additional methods, and in some cases complementary methods, are available in the System.String class.

Метод .NET Framework .NET Framework method Описание Description
Asc, AscW Asc, AscW Возвращает значение типа Integer , представляющее код символа, соответствующий символу. Returns an Integer value representing the character code corresponding to a character.
Chr, ChrW Chr, ChrW Возвращает символ, связанный с указанным кодом символа. Returns the character associated with the specified character code.
Filter Возвращает массив с отсчетом от нуля, содержащий подмножество массива String , на основе указанных условий фильтра. Returns a zero-based array containing a subset of a String array based on specified filter criteria.
Format Возвращает строку, отформатированную в соответствии с инструкциями, содержащимися в формате String выражении. Returns a string formatted according to instructions contained in a format String expression.
FormatCurrency Возвращает выражение, отформатированное как денежное значение, используя символ валюты, определенный на панели управления системы. Returns an expression formatted as a currency value using the currency symbol defined in the system control panel.
FormatDateTime Возвращает строковое выражение, представляющее значение даты и времени. Returns a string expression representing a date/time value.
FormatNumber Возвращает выражение, отформатированное как число. Returns an expression formatted as a number.
FormatPercent Возвращает выражение в виде процента (умноженное на 100) с символом % в конце. Returns an expression formatted as a percentage (that is, multiplied by 100) with a trailing % character.
InStr Возвращает целое число, указывающее начальную точку первого вхождения одной строки в другую. Returns an integer specifying the start position of the first occurrence of one string within another.
InStrRev Возвращает расположение первого вхождения одной строки в другую, начиная с правой части строки. Returns the position of the first occurrence of one string within another, starting from the right side of the string.
Join Возвращает строку, созданную путем объединения нескольких подстрок, содержащихся в массиве. Returns a string created by joining a number of substrings contained in an array.
LCase Возвращает строку или символ, преобразованные в нижний регистр. Returns a string or character converted to lowercase.
Left Возвращает строку, содержащую указанное число символов с левой стороны строки. Returns a string containing a specified number of characters from the left side of a string.
Len Возвращает целое число, содержащее количество символов в строке. Returns an integer that contains the number of characters in a string.
LSet Возвращает строку с выравниванием влево, содержащую указанную строку, скорректированную до указанной длины. Returns a left-aligned string containing the specified string adjusted to the specified length.
LTrim Возвращает строку, содержащую копию указанной строки без начальных пробелов. Returns a string containing a copy of a specified string with no leading spaces.
Mid Возвращает строку, содержащую указанное число символов из строки. Returns a string containing a specified number of characters from a string.
Replace Возвращает строку, в которой указанная подстрока была заменена другой подстрокой указанное число раз. Returns a string in which a specified substring has been replaced with another substring a specified number of times.
Right Возвращает строку, содержащую указанное число символов от правой части строки. Returns a string containing a specified number of characters from the right side of a string.
RSet Возвращает строку с выравниванием по правому краю, содержащую указанную строку, скорректированную до указанной длины. Returns a right-aligned string containing the specified string adjusted to the specified length.
RTrim Возвращает строку, содержащую копию указанной строки без конечных пробелов. Returns a string containing a copy of a specified string with no trailing spaces.
Space Возвращает строку, состоящую из указанного числа пробелов. Returns a string consisting of the specified number of spaces.
Split Возвращает одномерный массив (с отсчетом от нуля), содержащий указанное число подстрок. Returns a zero-based, one-dimensional array containing a specified number of substrings.
StrComp Возвращает-1, 0 или 1 на основе результата сравнения строк. Returns -1, 0, or 1, based on the result of a string comparison.
StrConv Возвращает строку, преобразованную указанным образом. Returns a string converted as specified.
StrDup Возвращает строку или объект, состоящий из указанного символа, повторяемого указанное число раз. Returns a string or object consisting of the specified character repeated the specified number of times.
StrReverse Возвращает строку, в которой порядок символов в указанной строке изменяется на обратный. Returns a string in which the character order of a specified string is reversed.
Trim Возвращает строку, содержащую копию указанной строки без начальных или конечных пробелов. Returns a string containing a copy of a specified string with no leading or trailing spaces.
UCase Возвращает строку или символ, содержащий указанную строку, преобразованную в верхний регистр. Returns a string or character containing the specified string converted to uppercase.

С помощью инструкции Option Compare можно задать, сравниваются ли строки с использованием порядка сортировки текста без учета регистра, определенного языковым стандартом системы ( Text ) или внутренними двоичными представлениями символов ( Binary ). You can use the Option Compare statement to set whether strings are compared using a case-insensitive text sort order determined by your system’s locale ( Text ) or by the internal binary representations of the characters ( Binary ). Метод сравнения текста по умолчанию — Binary . The default text comparison method is Binary .

Пример: Укасе Example: UCase

В этом примере используется функция UCase , которая возвращает версию строки в верхнем регистре. This example uses the UCase function to return an uppercase version of a string.

Пример: LTrim Example: LTrim

В этом примере функция LTrim используется для удаления начальных пробелов и функции RTrim для удаления конечных пробелов из строковой переменной. This example uses the LTrim function to strip leading spaces and the RTrim function to strip trailing spaces from a string variable. Для удаления обоих типов пробелов используется функция Trim . It uses the Trim function to strip both types of spaces.

Пример: mid Example: Mid

В этом примере функция Mid используется для возврата указанного числа символов из строки. This example uses the Mid function to return a specified number of characters from a string.

Пример: len Example: Len

В этом примере для возврата числа символов в строке используется Len . This example uses Len to return the number of characters in a string.

Пример: InStr Example: InStr

В этом примере используется функция InStr , которая возвращает расположение первого вхождения одной строки в другую. This example uses the InStr function to return the position of the first occurrence of one string within another.

Пример: Format Example: Format

В этом примере показаны различные варианты использования функции Format для форматирования значений с помощью String форматов и пользовательских форматов. This example shows various uses of the Format function to format values using both String formats and user-defined formats. Для разделителя даты ( / ), разделителя времени ( : ) и индикаторов AM/PM ( t и tt ) фактически отформатированные выходные данные, отображаемые системой, зависят от параметров языкового стандарта, используемых кодом. For the date separator ( / ), time separator ( : ), and the AM/PM indicators ( t and tt ), the actual formatted output displayed by your system depends on the locale settings the code is using. Если время и даты отображаются в среде разработки, используются короткий формат времени и короткий формат даты языкового стандарта кода. When times and dates are displayed in the development environment, the short time format and short date format of the code locale are used.

Для национальных настроек, в которых используется 24-часовой формат времени, индикаторы AM/PM ( t и tt ) ничего не отображают. For locales that use a 24-hour clock, the AM/PM indicators ( t and tt ) display nothing.

Источник: docs.microsoft.com

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

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

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

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

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

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

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

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

Сокращенный вариант:
InStr(строка1, строка2)

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

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

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

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

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

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

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

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

Источник: vremya-ne-zhdet.ru

Функции 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().
  • Источник: www.excel-vba.ru

    sitesaid.ru

    Создание сайта

    Работа со строками в Visual Basic

    Справочные данные Visual Basic 6.0
    Поэтапное создания программ
    Элементы программирования
    Основы программирования

    Для работы в Visual Basic со строками используется оператор объединения, называемый также оператором конкатенации, и встроенные функции. Список наиболее часто используемых функции для работы со строками приведен ниже:

    Функции Str и Val
    Функции, удаляющие пробелы.
    Выделение подстроки.
    Преобразование строки.
    Определение положения строки.
    Объединение строк.

    Функции Str и Val

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

    Str (число)
    Функция Val () преобразовывает символьную строку в численное значение.
    Синтаксис функции:
    Val (символьноеВыражение)

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

    Рассмотрим следующий пример. Зададим в окне Immediate две символьные строки а и b следующего вида:

    а=”10″
    b=”12″
    При сложении этих двух строк получается символьная строка
    “1012”
    Если сложить две символьные строки, предварительно преобразовав их в числа, и распечатать с помощью команды,
    Print Val (а) + Val (b)
    то получится число 22.

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

    Функции LTrim, Rtrim и Trim используются для удаления пробелов в символьной строке.

    Функция

    Назначение

    LTrim

    Удаляет пробелы, расположенные в начале символьной строки

    RTrim

    Удаляет пробелы, расположенные в конце символьной строки

    Удаляет пробелы, расположенные в начале и в конце символьной строки

    Пример использования этих функции приведен ниже:

    cCoinment= ” Удаление пробелов ”
    Print LTrim(cComment) ‘ Возвращает “Удаление пробелов ”
    Print RTrim(cCornment) ‘ Возвращает ” Удаление пробелов”
    Print Trim(cComrnent) ‘ Возвращает “Удаление пробелов”

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

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

    Left(выражение, числоСимволов)
    Right(выражение, числоСимволов)
    Mid(выражение, номерПозиции [, числоСимволов ])

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

    cConmtent= “Выделение подстроки”
    Print Left(cConroent,3) ‘ Возвращает “Выд”
    Print Right (cCornment, 6) ‘ Возвращает “строки”
    Print Mid (cCornment, 11,3) ‘ Возвращает “под”

    Преобразование строки

    Функции UCase о и Lease о используются в Visual Basic для преобразования строчных символов в заглавные и заглавных в строчные. Помимо этого, в Visual Basic имеется функция StrConv, которая преобразовывает выражение к имени собственному, начинающемуся с заглавной буквы.

    Функции UCase () и LCase () возвращают значения, имеющие тип Variant. Для того чтобы возвращаемое значение имело тип string, необходимо использовать функции UCase$ () и Lcase$ ().

    Функция UCase
    Функция ucase преобразует все строчные буквы в символьной строке в заглавные. Синтаксис функции: UCase (символьнаяСтрока) Например: cComment = “вывод” Print UCase(cComment) ‘ Возвращает “ВЫВОД” Print UCase$(cComment) ‘ Возвращает “ВЫВОД

    Функция LCase
    Функция LCase возвращает заданную символьную строку, в которой все заглавные буквы преобразованы в строчные. Синтаксис функции: LCase(символьнаяСтрока) Например: cComment= “ВЫВОД” Print LCase(cComment) ‘ Возвращает “вывод” Print LCase$(cComment) ‘ Возвращает “вывод”

    Функция StrConv
    Функция StrConv преобразовывает выражение, написанное строчными или заглавными буквами, в имя собственное. Например: cComment = “Петр Петрович Петров” Print StrConv(cComment,vbProperCase) ‘ Возвращает “Петр Петрович Петров” Аналогичный результат будет получен и в следующем случае: cComment = “ПЕТР ПЕТРОВИЧ ПЕТРОВ” Print StrConv(cComment, vbProperCase) ‘ Возвращает “Петр Петрович Петров”

    Определение положения строки в другой строке

    Visual Basic содержит две функции, позволяющие осуществлять поиск символьной строки в другой: inStr о и inStrRev о. Эти функции отличаются тем, что inStr о осуществляет поиск с начала строки и до ее конца, а InStrRev о проводит поиск в обратном направлении, то есть от конца строки к началу.

    Функция inStr () имеет следующий упрощенный синтаксис:

    InStr (исходнаяСтрока, строкаПоиска)

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

    Print InStr (“Сегодня прекрасная погода”, “погода”)

    В результате будет возвращено число 20.

    Объединение строк

    В Visual Basic для работы со строками можно использовать только один оператор — оператор объединения. С помощью данного оператора можно объединять несколько строк в одну. Этот оператор обозначается символом амперсанда (&).

    В предыдущих версиях Visual Basic для объединения строк использовался символ “плюс” (+). В Visual Basic 6 этот оператор также поддерживается.

    Например, объединение строк удобно использовать при формировании полного адреса, если известен индекс, город и улица. В следующем примере и на рис. 5.7 показан результат объединения фамилии, имени и отчества в окне Immediate:

    sLastName = “Петр ”
    sFirstName = “Петрович”
    sSecondName = “Петров”
    sName = sLastName & sFirstName & sSecondName
    Print sName ‘ Возвращает “Петр Петрович Петров”

    Источник: sitesaid.ru