|
|
Примеры использования функций 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):
При выполнении StrComp возвращается одно из следующих значений:
![]() В вышеприведенном листинге в текстовом режиме сравниваются две строки: "Строка по умолчанию" и " Строка по умолчанию". Результат сравнения = 1, т.е. "Строка по умолчанию" больше, чем " Строка по умолчанию". Поэкспериментируйте с разнообразными строками для лучшего понимания работы функции StrComp. Функция InStrФункция InStr дает возможность определить, содержит ли одна строка другую строку. Синтаксис StrComp ([Start, ] String1, String2 [, Compare]) String1, String2 - любые допустимые строковые выражения. Функция проверяет содержится ли String1 в String2. Compare - необязательный аргумент, может быть любой из следующих предопределенных констант (если он опускается, то используется текущая установка Option Compare):
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. Синтаксис Chr (Charcode) Charcode - любое численное выражение, являющееся допустимым кодом для набора символов, используемого компьютером. Должен быть целым числом от 0 до 255. Функция Chr принимает код отдельного символа в качестве аргумента и возвращает строку, содержащую соответствующий этому коду символ. Данная функция использована в вышеприведенных листингах для перевода строки при выводе сообщения на экран Chr (13). Поскольку символы, используемые для начала новой строки, являются очень важными при форматировании сообщений и других строковых данных, которыми манипулируют VBA-процедуры, имеется несколько предопределенных констант для этих символов, чтобы не было необходимости использовать функцию Chr:
Для просмотра списка код-символ надо открыть справочную систему VBA и по запросу "character sets" будет представлена соответствующая таблица. ![]() ![]() Форматирование значений данныхОчень часто формат данных на выходе программы по тем или иным причинам нас не совсем устраивает. Эту задачу решает функция Format. VBA-функция Format идентична функции Format в Excel и использует те же символы-заполнители форматирования данных. Синтаксис
Expression - любое допустимое выражение (обязательный аргумент). Format - допустимое выражение именованного или определенного пользователем формата. Firstdayofweek - константа, которая определяет первый день недели. Firstweekofyear - константа, которая определяет первую неделю года. Чтобы использовать функцию Format, надо либо задать предопределенный формат, либо создать образ определенного формата, используя символы-заполнители. ![]() Именованные форматы для использования с функцией Format
Символы-заполнители для создания пользовательских форматов
|
|
|
Спасибо, что заглянули на сайт. Надеюсь, Вам понравилось. Заходите еще. Здесь всегда рады вам :) |
|
© 2005-2008 |
E-mail: |