воскресенье, 29 января 2012 г.

Редактирование макросов Excel во встроенном редакторе

Привет!

Достаточно много задач в Excel можно решить с помощью формул. Но не все задачи можно решить формулами, а иногда их просто нерационально решать с помощью формул. Поэтому уметь писать макросы просто необходимо.

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

Начнем с того, что нажмем на запись нового макроса, после нажмем заранее вынесенную на настраиваемую панель кнопку вставить строку и завершим запись макроса.
Войдем в этот макрос и увидим приблизительно следующее содержимое.
Теперь самое время использовать цикл. Я применяю 2 вида цикла, которые могут решить любые мои задачи:
For x=...Next "x"
While x<...Wend
Первый используется когда известно сколько раз нужно выполнить цикл, второй используется, если цикл должен выполняться пока действует некоторое условие (например, пока x< какого-то числа и т.д.).

Нужное количество строк будет задаваться значением ячейки A1. Переменной k присвоим значение этой ячейки. Цикл выполним от 1 до k с шагом 1 (шаг по умолчанию, которого тоже, как правило,  достаточно).

Выполнив такой нехитрый макрос, мы достигнем поставленной цели.

Просто, полезно, и когда нужно будет вставить 20 или 40 строк - этот макрос будет существенно экономить мое время.

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

Комментариев нет:

Отправить комментарий