Public Function Возраст(Дрожд As Date) As Integer
Возраст = DateDiff("yyyy", Дрожд, Now)
End Function
В этой функции: DateDiff() – стандартная функция VBA, определяющая разность между заданной датой Дрожд и текущей, переменная Дрожд – дата рождения, Now – стандартная функция, возвращающая текущую дату, “yyyy” – параметр функции DateDiff(), задающий единицу измерения год.
2. Проверьте работу функции, используя ее в ячейках Е3 и Е4, предварительно задав в ячейках D3, D4 даты рождения. Сама функция находится в категории Определенные пользователем (см. п. 4 раздела А). Аргумент функции Возраст() – это ячейка D3. Чтобы ввести ее имя в поле аргумента, установите курсор в это поле и щелкните ЛКМ по ячейке D3 и на кнопку ОК.
3. Проверка возраста с помощью функции Возраст показывает, что вычисление возраста происходит с превышением. Человеку целых 70 лет, а вычисляется 71. Это можно исправить так. Создайте функцию Возраст2, в которой единицу измерения в функции DateDiff() примите равной “m” – месяцы. Затем используйте ее в ячейках F3, F4 с использование стандартной функции ЦЕЛОЕ(). Формула в ячейке F3 будет такой: = ЦЕЛОЕ(Возраст2(D3)/12).
Б. Расчет комиссионных
1. В соответствие с рис. 1 создайте две таблицы: одну с 2-мя колонками, другую с 7-ю колонками.
2. В 1-ю таблицу введите все указанные на рис. 1 данные. Во 2-ю таблицу введите данные только в три колонки.
3. Из 1-й таблицы ясен алгоритм, в соответствие с которым начисляются комиссионные менеджерам продаж по объему вырученной за неделю суммы.
4. Создайте функцию Function с именем Komis, которая не учитывает уменьшение
комиссионных менеджерам, для которых установлен испытательный срок. Для этого
введите следующий программный код процедуры:
Public Function
Komis(sales
As Double) As
Double
‘ объявление констант:
Const proc1 As Single = 0.08
Const proc2 As Single = 0.1
Const proc3 As Single = 0.15
Const sales1 As Double = 10000
Const sales2 As Double = 20000
‘ начисление комиссионных в зависимости
‘ от суммы продаж:
If sales < sales1 Then
Komis = sales * proc1
ElseIf sales < sales2 Then
Komis = sales * proc2
Else
Komis = sales * proc3
End If
End Function
5. В ячейках Е13 – Е16 используйте созданную функцию Komis для расчета комиссионных.
6. Создайте функцию Function с именем Komis2, которая учитывает уменьшение комиссионных менеджерам, для которых установлен испытательный срок. Для этого введите следующий программный код процедуры:
Public Function Komis2(sales As Double, IspSrok As String) As Double
Dim Komis As Double ‘ объявляем переменную Komis
Const proc1 As Single = 0.08
Const proc2 As Single = 0.1
Const proc3 As Single = 0.15
Const sales1 As Double = 10000
Const sales2 As Double = 20000
Const KoffIsp As Single = 0.75
‘ расчет комиссионных в зависимости
‘ от вырученной суммы:
If sales < sales1 Then
Komis = sales * proc1
ElseIf sales < sales2 Then
Komis = sales * proc2
Else
Komis = sales * proc3
End If
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.