Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2013, 09:43   #11
Арианна
Пользователь
 
Регистрация: 11.03.2012
Сообщений: 25
По умолчанию

Я бы загрузила в файле, но формат не поддерживается((
Арианна вне форума Ответить с цитированием
Старый 14.10.2013, 09:50   #12
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

зачем макрос? тут и формулами без проблем делается:

з.ы. там даже два варианта на выбор)
Вложения
Тип файла: zip Пример.zip (6.7 Кб, 4 просмотров)
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 14.10.2013, 09:51   #13
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

А запаковать?
Код:
Sub plata()
    Dim c As Range
    For Each c In Range("c2:c" & Cells(Rows.Count, 3).End(xlUp).Row)
        c(1, 2) = ЗаработнаяПлата(c(1, 0), c)
    Next
End Sub
Вложения
Тип файла: zip Книга1.zip (9.9 Кб, 4 просмотров)
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума Ответить с цитированием
Старый 14.10.2013, 14:53   #14
Арианна
Пользователь
 
Регистрация: 11.03.2012
Сообщений: 25
По умолчанию

Поменяла вот так, но считать все равно не хочет и показывает ошибку в самом начале выполнения функции. Но если в параметрах меняю на числа, то все считается

Sub plata()
Dim oRange As Range
Set oRange1 = Range("B2:B6")
Set oRange2 = Range("C2:C6")
Set oRange3 = Worksheets("Лист1").Range("D2:D6")
oRange3.Value = ЗаработнаяПлата(oRange1, oRange2)
End Sub

Function ЗаработнаяПлата(Оклад, Стаж)
Select Case Стаж
Case Is < 5
ЗаработнаяПлата = Оклад * 0.05 + Оклад
Case 5
ЗаработнаяПлата = Оклад * 0.06 + Оклад
Case 6
ЗаработнаяПлата = Оклад * 0.07 + Оклад
Case 7 To 10
ЗаработнаяПлата = Оклад * 0.1 + Оклад
Case 10 To 25
ЗаработнаяПлата = Оклад * 0.2 + Оклад
Case Is > 25
ЗаработнаяПлата = Оклад * 0.3 + Оклад
End Select
End Function
Арианна вне форума Ответить с цитированием
Старый 14.10.2013, 14:55   #15
Арианна
Пользователь
 
Регистрация: 11.03.2012
Сообщений: 25
По умолчанию

Макросы, потому что лабораторка =)
Арианна вне форума Ответить с цитированием
Старый 14.10.2013, 15:06   #16
Арианна
Пользователь
 
Регистрация: 11.03.2012
Сообщений: 25
По умолчанию

А без цикла низя? :'(
Арианна вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в макросе сравнения таблиц ZorDMV Microsoft Office Excel 8 01.05.2013 11:41
Ошибка в макросе runik Microsoft Office Excel 5 19.11.2012 17:28
ВПР в макросе (где-то ошибка) Флина Microsoft Office Excel 3 26.01.2011 04:55
Ошибка в макросе по переносу данных Richard123 Microsoft Office Excel 2 19.01.2011 09:16
Почему, ошибка в макросе valerij Microsoft Office Excel 8 27.02.2010 01:48