Функции-процедуры VBA

Автор работы: Пользователь скрыл имя, 15 Июля 2013 в 15:27, лекция

Краткое описание

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

Прикрепленные файлы: 1 файл

Лекция 8.docx

— 1.50 Мб (Скачать документ)

 

 

Do

   Statements

Loop Until Condition

 

 

Condition - логическое выражение для детерминанта цикла

 

Statements - один, ни одного или несколько операторов, которые составляют тело цикла

 

Loop - ключевое слово, указывает на окончание тела цикла и обозначает место, из которого VBA возвращается в начало цикла после проверки условия

 

 

VBA выполняет цикл пока  логическое выражение, представленное  с помощью Condition, равно False.

 

В остальном цикл Do Loop Until полностью аналогичен циклу Do Loop While.

 

 

Листинг, использующий цикл Do Loop Until для подсчета цифр от 1 до 10, будет выглядеть так:

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

Циклы VBA (ч.3). Вложенные  циклы

 

Циклы можно помещать внутрь друг друга. Помещение одной структуры  цикла в другую называется вложением  циклов. Можно делать вложение структур циклов разного типа.

 

При вложении циклов надо соблюдать  определенные правила:

При вложении циклов For..Next каждый цикл должен иметь свою уникальную переменную счетчика;

При вложении циклов For Each..Next каждый цикл должен иметь свою уникальную element-переменную;

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

 

 

В нижеприведенном листинге показан простейший пример использования  вложенных циклов For..Next:

 

Прерывание выполнения макроса или процедуры

 

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

 


Информация о работе Функции-процедуры VBA