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 Кб)

Рейтинг@Mail.ru

вверх гостевая; E-mail