В макросах можно использовать и имеющиеся в 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
Для определения вида англоязычного варианта функции рекомендуется стандартная технология:
– записывается временный макрос, в котором вызывается нужная нам функция;
- получившаяся команда копируется в нужный нам макрос;
- временный макрос удаляется.