Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Использование переменных в VBAСодержание книги
Поиск на нашем сайте
Допустимые имена Как и в других языках программирования, переменные, процедуры, константы и т.д. имеют свои имена. В VBA действуют следующие ограничения на имена: 1. Длина имени не должна превышать 255 символов. 2. Имя не должно содержать точек, пробелов, и следующих символов: %, &,!, #, @, $. 3. Имя должно начинаться с буквы. 4. Имя не должно совпадать с ключевыми словами VBA и именами встроенных функций и процедур. Для того чтобы сделать программу наглядной и легко читаемой, присваиваемые Вами имена должны отображать суть обозначаемого объекта. Для обозначения переменной, в которой будет храниться индекс учебного года, хорошим именем будет, например, УчГод, но не одиночный символ (например, x). А вот для обозначения переменной х в вычислениях, например, Sin(x), это обозначение является наилучшим. Обратите внимание на использование верхнего регистра при именовании переменных и сравните два имени: Учгод и УчГод. Очевидно, что второе имя гораздо лучше читаемо, чем первое. Как Вы знаете, переменные предназначены для хранения и изменения данных во время выполнения программы. В зависимости от того, какие значения хранятся в переменной, говорят о её типе данных. Типы данных переменных VBA Ниже перечислены типы данных, доступные в VBA, и объем памяти, занимаемый переменной.
Описание переменной Перед использованием переменную желательно описать (или, как ещё говорят, объявить), чтобы VBA выделил память для ее хранения. Объем выделяемой памяти определяется типом переменной (см. список выше). Для описания переменных используется инструкция Dim. Как правило, блок объявления переменных располагается в начале программы или модуля VBA. Описание переменных - это необязательная процедура, но, выполнив ее, Вы существенно повысите производительность программы и облегчите ее отладку. Ниже приведен пример использования инструкции Dim для описания переменной: Dim Var1 As Integer В этой команде объявляется переменная Varl типа Integer. Это означает, что VBA выделил для нее 2 байтапамяти. В команде использованы три ключевых слова — Dim, As и Integer. Рассмотрим их подробнее. Dim Ключевое слово, начинающее описание переменной Varl Имя переменной As Ключевое слово, отделяющее имя переменной от типа данных Integer Тип данных
Ниже мы приводим еще несколько примеров описания переменных. Dim Var2 As Double Dim Var3 As Date Dim Var4 As Currency Dim Var5 As Variant В одной инструкции Dim можно описать сразу несколько переменных, разделяя их запятыми и сопоставляя каждой из них ключевое слово As и тип данных, например: Dim Var2 As Double, Var3 As Date, Var4 As Currency, Var5 As Variant Использование переменных Теперь мы посмотрим, как это сделать в программе. В процедуре ЦелаяПеременная переменная Integer применяется для задания свойства Value объекта Range. Sub ЗадатьПеременную() Dim Num1 As Integer Num1 = 5 Worksheets(1).Range("A1").Value = Num1 Worksheets(1).Select End Sub В третьей строке переменной Numl присваивается значение 5, которое сохраняется до завершения программы. В четвертой строке мы приравниваем свойство Value ячейки A1 первого рабочего листа переменной Num1. В программе ПрисвоитьЗначение приведен обратный пример — переменной Num1 присваивается значение из диапазона. Sub ПрисвоитьЗначение() Dim Num1 As Integer Num1 = Worksheets(1).Range("A1").Value MsgBox Num1 End Sub Если Вы запустите эту программу в той же рабочей книге, что и ЦелаяПеременная, значение Num1 будет равно 5. В четвертой строке программы переменная использована для вывода значения в информационном окне. Таким образом, программа ПрисвоитьЗначение отображает в окне значение свойства Value диапазона A1. Этого же результата можно добиться и не используя переменную, как продемонстрировано в следующем примере. Sub БезПеременной() MsgBox Worksheets(1).Range("А1").Value End Sub Преимущества переменных Глядя на предыдущий пример, Вы, вероятно, подумали: «Зачем же вообще нужны переменные?» Прежде всего, они облегчают написание программы, особенно когда Вам приходится использовать некоторое значение несколько раз. Допустим, Вам нужно присвоить ячейкам диапазона A1 второго, третьего и четвертого листов значение, содержащееся в этой же ячейке первого листа. Вот как будет выглядеть программа без переменных: Sub ЗадатьЗначения() Worksheets(2).Range("A1").Value = Worksheets(1).Range("A1").Value Worksheets(3).Range("A1").Value = _ Worksheets(1).Range("A1").Value Worksheets(4).Range("A1").Value = _ Worksheets(1).Range("A1").Value End Sub Примените переменную, и программа станет короче (по числу символов) и понятнее: Sub ИспользованиеПеременной() Dim Num1 As Integer Num1 = Worksheets(1).Range("A1").Value Worksheets(2).Range("A1").Value = Num1 Worksheets(3).Range("A1").Value = Num1 Worksheets(4).Range("A1").Value = Num1 End Sub Переменные не только сократят код и сделают его более читаемым. Они еще и ускорят его выполнение. Программа ИспользованиеПеременной, например, работает быстрее, чем ЗадатьЗначения. О скорости мы Вам расскажем чуть позже, а пока лишь запомните, что любое обращение к объекту, методу или свойству требует от Excel определенных действий и потому занимает некоторое время. В программе ЗадатьЗначенияколичество таких обращений можно определить по числу точек в инструкциях. В строках со второй по четвертую они использованы 12 раз, по четыре в каждой строке. В строках 3—6 программы ИспользованиеПеременнойточка встречается 8 раз, по две на строку. Предположим, что на обработку каждой точки требуется одно и то же время, тогда, подсчитав, получим, что программа ИспользованиеПеременнойвыполняется за 2/3 времени, затрачиваемого на работу ЗадатьЗначения. Так все обстоит и в действительности. Конечно, для таких коротких примеров различие в скоростях заметить невозможно, но в длинных и сложных приложениях разница становится весьма ощутимой. Объектные переменные Объектная переменная используется для ссылки на объект. Когда Вы хорошенько разберетесь в языке VBA, то поймете неоценимую пользу таких переменных: они позволяют существенно сократить тексты программ. Код, написанный с их помощью, легче читается и гораздо быстрее выполняется. Примеры на нескольких следующих страницах наглядно это демонстрируют. Задание объектной переменной Объектные переменные объявляются и задаются немного иначе, чем остальные. Во фрагменте кода, показанном ниже, приведены инструкции объявления и присваивания. Dim Range1 As Object Set Range1 = Worksheets(1).Range("A1") Обратите внимание, что объявление производится практически так же, как и для других типов, хотя в данном случае Вы можете указать конкретный тип объекта (об этом чуть позже). Теперь разберемся со второй строкой (помните, что оператор присваивания для объектной переменной всегда начинается словом Set!!!): Set Ключевое слово для присваивания значения объектной переменной Range1 Имя переменной = Оператор присваивания Worksheets(l). Range(" A1") Объект, присваиваемый переменной
|
||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-12-15; просмотров: 111; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.168.40 (0.006 с.) |