Nickolay.info. Обучение. Пользовательские функции в Excel |
Чтобы создать в Excel пользовательскую функцию для расчета, который отсутствует в стандарте, откроем редактор VBA через меню Сервис - Макрос - Редактор Visual Basic, добавим новый модуль через меню Insert - Module и введем туда текст нашей функции.
Пример. Составить блок-схему и разработать функцию пользователя расчета надбавки к окладу в зависимости от стажа работы сотрудников предприятия. Если стаж работы меньше 5 лет, то надбавка составляет 0%, если стаж от 5 до 10 лет, то надбавка - 5%, если стаж больше 10 лет, то надбавка - 10%.
Function Nadbavka(Stag, Oklad) If Stag < 5 Then Nadbavka = Oklad ElseIf Stag <= 10 Then Nadbavka = Oklad + Oklad * 0.05 Else Nadbavka = Oklad + Oklad * 0.1 End If End Function
Документ Excel XP "Nadbavka" - ниже.
Nadbavka.xls (21 Кб)
Если Excel при открытии документа запрещает показ макросов - поступаем как обычно: меню Сервис, Параметры, вкладка Безопасность, кнопка "Безопасность макросов", на вкладке "Уровень безопасности" ставим "Средняя" и жмем ОК.
При следующем открытии документа, содержащего макросы, жмем "Не отключать макросы" в появившемся окне диалога.
Еще пример, связанный с копированием ячеек и циклом While: Скопировать ячейки с Листа 1, начиная с В3 до первой пустой ячейки, на Лист 3 в ячейки, начиная с А13.
Текст функции:
Sub Кнопка1_Щелкнуть() Row1 = 3 Row3 = 13 While IsEmpty(Sheets("Лист1").Cells(Row1, 2)) = False MsgBox ("Копирую: " + Sheets("Лист1").Cells(Row1, 2)) Sheets("Лист3").Cells(Row3, 1) = Sheets("Лист1").Cells(Row1, 2) Row1 = Row1 + 1 Row3 = Row3 + 1 Wend End Sub
Kopirka.xls (24 Кб)
гостевая; E-mail |