Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Pliomera

Технолог


Сообщения: 819
Благодарности: 117

Профиль | Отправить PM | Цитировать


Dim i As Integer
Dim Day_in_Year(365) As Boolean 'В массиве храним инфу: True - рабочий день, False - выходной или праздник

'Заполняем значения массива на текущий год
'считывая данные из столбца B на вспомогательном листе Sheet2
'в котором единичками отметим рабочие дни
'В столбце A протащим даты от 1.01. до 31.12.

For i = 0 to 365
Day_in_Year(i) = (Sheets("Sheet2").Cells(i + 1, 2).Value = 1)
Next i

'Пусть на листе Sheet1 в ячейке a1 - исходная дата, а в ячейке b1 срок в рабочих днях

'Далее можно на кнопку (или еще куда) повесить:

Private Sub Result()

Dim i As Integer, x As Integer, n As Integer

For i = 0 to 365
'Порядковый номер в году исходной даты
If Sheets("Sheet1").Cells(1, 1).Value = Sheets("Sheet2").Cells(i + 1, 1).Value Then x = i + 1
Next i

n = Sheets("Sheet1").Cells(1, 2).Value 'Считываем количество рабочих дней

Do
If Day_in_Year(x) Then n = n - 1 'Обратный отсчет рабочих дней
x = x + 1
If n = 0 Then Exit Do
Loop

'Выводим в ячейку a3 листа Sheet1 искомую дату
Sheets("Sheet1").Cells(1, 3).Value = Sheets("Sheet2").Cells(x, 1).Value

End Sub

Это просто как пример, возможно всё реализуется проще
И всё-таки программирование

Отправлено: 18:24, 21-11-2005 | #124