Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Rom4ez от 06 февраля 2019, 19:54

Название: VBA: Определить день недели для 25-летнего юбилея.
Отправлено: Rom4ez от 06 февраля 2019, 19:54
Необходимо написать функцию на языке VBA для решения данной задачи.
Определить день недели для 25-летнего юбилея.
Название: Re: VBA: Определить день недели для 25-летнего юбилея.
Отправлено: Администратор от 06 февраля 2019, 20:04
Это не функция, а процедура.

Sub Макрос()

    Dim Birthday As Date, Ubday As Date
   
    ' День рождения.
    Birthday = "01.01.1990"
   
    ' Дата 25-летнего юбилея.
    Ubday = DateAdd("yyyy", 25, Birthday)
   
    ' Сообщение с днём недели даты, которая в переменной 'Ubday'.
    MsgBox "День недели: " & WeekdayName(Weekday(Ubday, vbMonday), False, vbMonday)
   
End Sub
Название: Re: VBA: Определить день недели для 25-летнего юбилея.
Отправлено: Администратор от 06 февраля 2019, 20:45
Этот макрос в виде  функции. Поместите процедуру 'Макрос' и функцию 'GetWeekday' в один модуль.
Затем запускайте процедуру 'Макрос'.

Sub Макрос()

    ' Здесь укажите день рождения.
    MsgBox "День недели: " & GetWeekday("01.01.1990")

End Sub

Private Function GetWeekday(Birthday As Date)

    Dim Ubday As Date

    ' Дата 25-летнего юбилея.
    Ubday = DateAdd("yyyy", 25, Birthday)
    ' Получение дня недели даты, которая в переменной 'Ubday'.
    GetWeekday = WeekdayName(Weekday(Ubday, vbMonday), False, vbMonday)
   
End Function