Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 02.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
412.16 Кб
Скачать

Запись кода формул определения порядкового номера и замены строки с формулами на значения

Запись макросов Макрос2 и Макрос3 осуществляется аналогично - сначала вводятся формулы в ячейку А16:

=ЕСЛИ(ЕПУСТО(IT17);ЕСЛИ(ЕПУСТО(B17);0;МАКС(A$11:A16)+1);0)

и Е16:

=ЕСЛИ(ЕПУСТО(J17);ЕСЛИ(ЕПУСТО(F17);0;МАКС(E$11:E16)+1);0)

после чего осуществляется запись кода этих формул, как и в предыдущем макросе (рис. 5.6.).

Рис. 5.6. Окно программы с кодом макросов Макрос2, Макрос3 и Макрос4

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

Для записи макроса выполните следующее:

  • установите курсор в любую пустую ячейку, и выполните команду Правка/Копировать (или комбинация клавиш [Ctrl+С]);

  • выполните команду Правка/Специальная вставка и в появившемся диалоговом окне Специальная вставка активизируйте переключатель Значения, после чего нажмите кнопку ОК;

  • остановите запись макроса.

Метод Специальная вставка

Проанализируем записанный код VBA при вставке из буфера обмена скопированной области через диалоговое окно Специальная вставка:

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

PasteSpecial - метод диалоговое окно Специальная вставка.

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

Аргументу Paste (Вставить) могут присваиваться следующие значения:

  • xlAll - все;

  • xlFormulas - формулы;

  • xlValues - значения;

  • xlFormats - форматы.

Аргументу Operation (операция) могут присваиваться значения:

  • xlNone - нет;

  • xlAdd - сложить;

  • xlSubtract - вычесть;

  • xlMultiply - умножить;

  • xlDivide - разделить.

Аргументам SkipBlanks (пропускать пустые ячейки) и Transpose (транспонировать) могут присваиваться два значения False (Ложь) и True (Истина).

В связи с тем, что задача Макрос4 произвести только вставку значений, удалите ненужный код VBA (рис. 5.9.).

Соединение макросов

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

Рис. 5.7. Последовательность действий полного макроса РасходныйОрдер

Следует заметить, что написанные макросы выполняют действия 1, 3, 5 и 7, которые только выполняют определенные операции. Действия 2, 4, 6 и 8 заключаются в переходе к ячейке или диапазону ячеек, с которыми будут производиться эти операции. Поэтому операцию соединения разделим на две части:

  • перенос написанных макросов Макрос2, Макрос3 и Макрос4 в один макрос РасходныйОрдер в той последовательности, в которой они записывались;

  • редактирование полученного макроса РасходныйОрдер и добавления процедур с целью последовательного выполнения операций показанных на рис. 5.7;

  • ввод примечаний.

Для соединения макросов в один примените метод копирования. Для этого в окне программы Редактора Visual Basic выделите область от конца последнего символа вверх кода VBA, включая первый встречающийся знак апострофа, как это показано на рис. 5.8.

Рис. 5.8. Выделение фрагмента макроса для копирования и вставки в другой макрос

После соединения всех макросов получился макрос, показанный на рис. 5.9.

Рис. 5.9. Макрос, полученный в результате соединения четырех макросов

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