Excel VBA: работа с выходными днями (суббота и воскресенье)

В Excel VBA существует несколько методов определения и обработки выходных дней, в частности субботы и воскресенья. В этой статье мы рассмотрим различные примеры кода, чтобы проверить, приходится ли данная дата на субботу или воскресенье. Мы рассмотрим различные подходы в соответствии с вашими конкретными требованиями. Давайте погрузимся!

Метод 1: использование функции Weekday
Функция Weekday в VBA возвращает число, представляющее день недели для заданной даты. Сравнивая это число с предопределенными константами, мы можем определить, выпадает ли эта дата на выходной.

Sub CheckWeekendUsingWeekday(dateValue As Date)
    Dim dayOfWeek As Integer
    dayOfWeek = Weekday(dateValue)

    If dayOfWeek = vbSaturday Or dayOfWeek = vbSunday Then
        ' Perform your desired actions for weekend days
        MsgBox "It's a weekend!"
    Else
        ' Perform actions for non-weekend days
        MsgBox "It's not a weekend."
    End If
End Sub

Метод 2: использование функции WeekdayName
Подобно функции Weekday, функция WeekdayName возвращает название дня недели для заданной даты. Сравнивая результат с названиями субботы и воскресенья, мы можем определить выходные дни.

Sub CheckWeekendUsingWeekdayName(dateValue As Date)
    Dim dayName As String
    dayName = WeekdayName(Weekday(dateValue))

    If dayName = "Saturday" Or dayName = "Sunday" Then
        ' Perform your desired actions for weekend days
        MsgBox "It's a weekend!"
    Else
        ' Perform actions for non-weekend days
        MsgBox "It's not a weekend."
    End If
End Sub

Метод 3: использование функции «Формат».
Функция «Формат» позволяет нам извлекать определенные компоненты из даты. Мы можем использовать его для извлечения компонента дня недели и сравнения его с желаемыми значениями.

Sub CheckWeekendUsingFormat(dateValue As Date)
    Dim dayOfWeek As Integer
    dayOfWeek = Format(dateValue, "w")

    If dayOfWeek = 1 Or dayOfWeek = 7 Then
        ' Perform your desired actions for weekend days
        MsgBox "It's a weekend!"
    Else
        ' Perform actions for non-weekend days
        MsgBox "It's not a weekend."
    End If
End Sub

Метод 4. Использование функции «День недели» с настраиваемым первым днем ​​недели
По умолчанию функция «День недели» считает воскресенье первым днем ​​недели. Однако мы можем изменить это поведение и установить понедельник как первый день недели, используя необязательный параметр.

Sub CheckWeekendUsingCustomFirstDay(dateValue As Date)
    Dim dayOfWeek As Integer
    dayOfWeek = Weekday(dateValue, vbMonday)

    If dayOfWeek = 6 Or dayOfWeek = 7 Then
        ' Perform your desired actions for weekend days
        MsgBox "It's a weekend!"
    Else
        ' Perform actions for non-weekend days
        MsgBox "It's not a weekend."
    End If
End Sub

В этой статье мы рассмотрели различные методы определения выходных дней (суббота и воскресенье) с помощью Excel VBA. Используя функции Weekday, WeekdayName, Format и настраивая первый день недели, вы можете эффективно обрабатывать операции, связанные с выходными, в вашем коде VBA. Понимание этих методов позволит вам создавать надежные и гибкие решения с учетом ваших конкретных требований.