Использование встроенных функций в макросах

В макросах можно использовать и имеющиеся в Excel функции. Но при этом имеется одно ограничение:

функция должна быть в англоязычном варианте.

Например.

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

К примеру:

- общая сумма выручки (уже реализовано в разделе 5.4.6.1);

- средняя выручка;

- максимальная выручка;

- минимальная выручка.

Можно конечно выполнить все эти расчеты сразу.

Т.е. в ячейку D12 (рис. 5.10) ввести формулу:

=ДСРЗНАЧ(Данные_продаж;Продажи!H11;Q7:R8);

в ячейку D13 (рис. 5.10) ввести формулу:

=ДМАКС(Данные_продаж;Продажи!H11;Q7:R8);

и т.д.

Но если сделать вариант с выбором вида расчета, то интерфейс отчета может быть следующим (рис. 5.12):

Рис. 5.12. Интерфейс расчета показателей продаж за определенный период времени

Из раскрывающегося списка выбирается вид расчета и затем щелчок по кнопке «Рассчитать».

Технология создания такого интерфейса уже описана в разделах 5.4.3. Сортировка, 5.4.4. Поиск, 5.4.5. Расчет заработной платы.

Поэтому дадим только краткие комментарии:

- для выбора операции используется элемент «Поле со списком»;

- этот элемент связан со списком операций, который введен в ячейки U11:U14;

- с этим списком связана ячейка U15;

Макрос для кнопки «Рассчитать» может иметь вид:

Sub Рассчитать()

k = Range("U15")

Select Case k

Case 1

Range("F11") = "=DSUM(Данные_продаж,Продажи!H11,Q7:R8)"

Case 2

Range("F11")="=DAVERAGE(Данные_продаж,Продажи!H11,Q7:R8)"

Case 3

Range("F11") = "=DMAX(Данные_продаж,Продажи!H11,Q7:R8)"

Case 4

Range("F11") = "=DMIN(Данные_продаж,Продажи!H11,Q7:R8)"

End Select

End Sub

Для определения вида англоязычного варианта функции рекомендуется стандартная технология:

– записывается временный макрос, в котором вызывается нужная нам функция;

- получившаяся команда копируется в нужный нам макрос;

- временный макрос удаляется.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: