Функция VBA WeekdayName возвращает имя дня недели на основе его номера.
WeekdayName(дата)
Или
WeekdayName(дата, первая_день_недели)
По умолчанию первый день недели – воскресенье (1), а последний – суббота (7).
Чтобы изменить нумерацию так, чтобы понедельник был первым днем недели (1), а воскресенье – последним (7), добавьте значение 2 как второй аргумент при использовании этой функции:
WeekdayName(дата, 2)
Использование функции WeekdayName для отображения названия 7 дней:
Sub WeekdayNameExample1()
MsgBox WeekdayName(1) 'Возвращает: понедельник
MsgBox WeekdayName(2) 'Возвращает: вторник
MsgBox WeekdayName(3) 'Возвращает: среда
MsgBox WeekdayName(4) 'Возвращает: четверг
MsgBox WeekdayName(5) 'Возвращает: пятница
MsgBox WeekdayName(6) 'Возвращает: суббота
MsgBox WeekdayName(7) 'Возвращает: воскресенье
End Sub
Функция WeekdayName также может отображать сокращенную версию дня, введя значение как второй аргумент:
Sub WeekdayNameExample2()
MsgBox WeekdayName(1, True) 'Возвращает: Пн.
MsgBox WeekdayName(2, True) 'Возвращает: Вт.
MsgBox WeekdayName(3, True) 'Возвращает: Ср.
MsgBox WeekdayName(4, True) 'Возвращает: Чт.
MsgBox WeekdayName(5, True) 'Возвращает: Пт.
MsgBox WeekdayName(6, True) 'Возвращает: Сб.
MsgBox WeekdayName(7, True) 'Возвращает: Вс.
End Sub
Используя функции Weekday и WeekdayName, вы можете получить название дня недели по дате:
Sub WeekdayNameExample3()
MsgBox WeekdayName(Weekday("30/11/2020", 2)) 'Возвращает: понедельник
End Sub
Хотя проще перейти напрямую через функцию форматирования FORMAT:
Sub WeekdayNameExample4()
MsgBox Format("30/11/2020", "dddd") 'Возвращает: понедельник
End Sub