Категории
Самые читаемые
PochitayKnigi » Компьютеры и Интернет » Программирование » VBA для чайников - Стив Каммингс

VBA для чайников - Стив Каммингс

Читать онлайн VBA для чайников - Стив Каммингс

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 61 62 63 64 65 66 67 68 69 ... 108
Перейти на страницу:

функция

Символ, соответствующий значению параметра код_символа

Filter ( массив_источник, эталон, включает, метод сравнения)

Функция (только в VBA6)

Массив, состоящий только из тех строк из массива источника, которые содержат эталон. Аргумент массив_истчник должен быть массивом строковых значений. Если необязательный аргумент включает равен False, то функция возвратит только строки, которые не включают эталон

Format (строка)

Функция

См. выше раздел "Форматирование данных"

Hex (число)

Функция

Строка, содержащая шестнадцатеричное представление числа

InStr (старт, строка1, строка2)

Функция

Число, соответствующее позиции строки 2 в строке 1; поиск начинается с позиции старт, этот аргумент не обязателен

InStrRev (строка 1, строка2, старт)

функция (только в VBA6)

Число, соответствующее позиции строки 2 в строке 1, считая с правого края строки 1; поиск начинается с позиции старт, этот аргумент не обязателен

Join (массив_строк, разделитель)

функция (только B VBA6)

Одна строка, комбинирующая все строки из массив_строк, который должен быть массивом строковых данных. По умолчанию Join вставляет пробел между строками, взятыми из массива строк, но можно задать и другой символ разделителя (символ необходимо заключить в кавычки)

Left (строка, длина)

Функция

Строка указанной длины из символов, взятых подряд из строки, задаваемой аргументом строка, начиная с левого края последней

Len (строка)

Функция

Число символов в строке

LCase (строка)

Функция

Копия строки, представленная символами нижнего регистра

LSet строковая_

переменная = строка

Оператор

Устанавливает значение строковой переменной, равное заданной строке, без изменения длины этой строковой переменной и с размещением заданной строки начиная с левого края переменной

LTrim (строка)

Функция

Новая строка, содержащая копию данной строки без пробелов в начале

Mid(строка, старт, длина)

Функция

Новая строка заданной длины из символов данной строки, взятых подряд, начиная с позиции старт

Mid(строковая переменная, старт, длина) = строка

Оператор

Начиная с позиции старт заменяет символами данной строки заданное аргументом длина число символов в строковой переменной

Oct(число)

Функция

Строка, содержащая восьмеричное представление числа

Replace(строка, найти, заменить, старт, число_замен, метод_сравнения)

Функция (только в VBA6)

Новая строка, получаемая в результате замены в заданной строке текста найти текстом заменить. Аргументы старт, число_замен и метод_сравнения не обязательны. Используйте число_замен, чтобы указать, сколько замен следует сделать, если текст найти встречается несколько раз (по умолчанию заменяются все случаи появления текста найти в строке)

Right (строка, длина)

Функция

Строка указанной длины из символов, взятых подряд из строки, задаваемой аргументом строка, начиная с правого края последней

RSet строковая_ переменсная = строка

Оператор

Устанавливает значение строковой переменной, равное заданной строке, без изменения длины этой строковой переменной и с размещением заданной строки с правого края переменной

RTrim (строка)

Функция

Новая строка, содержащая копию данной строки без пробелов в конце

Space (число)

Функция

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

Split(строка, разделитель, предел, метод сравнения)

Функция (только B VBA6)

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

StrComp(строка1, строка2)

Функция

О, если две строки равны; -1,если строка 1 меньше, чем строка 2; 1, если строка! больше, чем строка 2 (о сравнении строк говорилось в главе 9)

StrConv(строка, метод перевода)

Функция

Новая строка, созданная на основе заданной указанным методом перевода

String(число, символ)

Функция

Строка, состоящая из заданного числа повторяющихся символов

StrReverse (строка)

Функция(только VBA 6)

Строка, содержащая символы заданной строки в обратном порядке

Trim(строка)

Функция

Новая строка, содержащая копию данной строки без пробелов в начале и конце

UCase(строка)

Функция

Копия строки, представленная символами верхнего регистра

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

Представим, например, что у вас есть список полных имен в виде следующих строк:

"Самодур, Иван Акакиевич, акад."

"Невеселый, Степан Федорович, проф."

"Шутник, Василий Степанович, канд."

(такой список должен храниться в массиве строк; массивы будут рассматриваться в главе 13).

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

Но если предположить, что оригинальное имя содержится в переменной str-Старая, то поможет следующий трюк:

strНовая = Left(strСтарая, Len(strСтарая) - 7)

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

1. Сначала вызывается функция Len, которая вычисляет длину оригинальной строки.

2. Из результата, полученного в п. 1, вычитается 7, поскольку каждое из званий занимает семь символов в конце строки (включая запятую и пробел).

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

3. Вызывается функция Left, использующая вычисленную длину в качестве значения второго аргумента.

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

4. Новая, более короткая строка, возвращенная функцией Left, присваивается переменной

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

strMMfl = Mid (strHoBafl, InStr (str-Новая, ",") + 2)

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

Функция InStr ищет в заданной строке (первый аргумент) другую строку (второй аргумент).

В данном случае второй аргумент - это запятая, которая в списке следует за фамилией. Значение, которое возвращает InStr, соответствует номеру позиции в первой строке, где встречается вторая строка, - теперь вы знаете, где заканчивается фамилия.

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

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

В табл. 11.4 представлено описание таких команд. У некоторых функций в этой таблице опущены необязательные аргументы - вы всегда сможете уточнить детали по справке VBA.

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

Чтобы воспользоваться предоставляемым здесь материалом, вы должны ясно представлять, как VBA обрабатывает значения дат и времени и как работать с переменными, хранящими даты (см. главу 7).

1 ... 61 62 63 64 65 66 67 68 69 ... 108
Перейти на страницу:
Тут вы можете бесплатно читать книгу VBA для чайников - Стив Каммингс.
Комментарии