In diesem Artikel erstellen wir eine benutzerdefinierte Funktion (User Defined Function, UDF), um zu überprüfen, ob am angegebenen Datum ein Feiertag ist, einschließlich oder ausschließlich Samstage und Sonntage als freie Woche.

Die Rohdaten für diese Stichprobe bestehen aus aufeinanderfolgenden Daten in Spalte A. Wir werden feststellen, ob es sich um einen Feiertag am angegebenen Datum handelt, einschließlich oder ohne freie Woche am Samstag oder Sonntag.

ArrowRawData

Wir haben die Feiertagsdaten in der Spalte A auf dem Blatt „Feiertage“ angegeben.

ArrowHolidayList

Wir haben die benutzerdefinierte Funktion „IsHoliday“ erstellt, um den Status des Urlaubs zum angegebenen Datum zu ermitteln.

Syntax der Funktion

IsHoliday (Datum, InclSaturdays, InclSundays)

InclSaturdays und InclSundays sind optionale Parameter. Standardmäßig haben beide den Wert TRUE. Um Samstag und Sonntag in Arbeitstage umzuwandeln, ändern Sie den Wert des jeweiligen Parameters in FALSE.

ArrowOutput

Wir haben die folgende Formel in Zelle C9 verwendet, um den Feiertagsstatus für das Datum in Zelle A9 unter Berücksichtigung des Samstags als Arbeitstag zu ermitteln.

IsHoliday (A9, FALSE)

Wir haben die folgende Formel in Zelle D9 verwendet, um den Feiertagsstatus für das Datum in Zelle A9 unter Berücksichtigung von Samstagen und Sonntagen als Arbeitstagen zu ermitteln.

IsHoliday (A9, FALSE, FALSE)

Wir haben die folgende Formel in Zelle E9 verwendet, um den Feiertagsstatus für das Datum in Zelle A9 zu ermitteln, wobei Samstage und Sonntage als freie Wochen berücksichtigt wurden.

IsHoliday (A9)

Logische Erklärung

In der Funktion „IsHoliday“ prüfen wir zunächst, ob das im Parameter angegebene Datum in der angegebenen Feiertagsliste vorhanden ist. Wenn das Datum in der Feiertagsliste vorhanden ist, geben Sie als Ausgabe „Feiertag“ zurück. Wenn das Datum nicht in der Feiertagsliste vorhanden ist, prüfen Sie, ob das angegebene Datum ein Samstag oder ein Sonntag ist. Überprüfen Sie anhand des angegebenen Eingabeparameters, ob ein Samstag oder ein Sonntag als Feiertage eingeschlossen oder ausgeschlossen werden soll.

Code Erklärung

Setzen Sie RngFind = Arbeitsblätter („Feiertage“). Spalten (1) .Finden (LngDate)

Der obige Code wird verwendet, um den Ort zu finden, an dem das angegebene Datum in der Feiertagsliste vorhanden ist.

Wenn nicht RngFind nichts ist, dann OK = „Holiday“

Zum letzten Ende gehen Wenn der obige Code verwendet wird, um zu überprüfen, ob das angegebene Datum in der Feiertagsliste vorhanden ist. Wenn die Bedingung TRUE zurückgibt, gibt die benutzerdefinierte Funktion „Holiday“ als Ausgabe zurück und das Steuerelement wechselt in die letzte Zeile der UDF.

Bitte folgen Sie unten für den Code

Option Explicit

Function IsHoliday(LngDate As Date, Optional InclSaturdays As Boolean = True, _

Optional InclSundays As Boolean = True)

'Declaring variables

Dim RngFind As Range

Dim OK As String

'Initializing the variable

OK = "Working day"

On Error Resume Next

'Finding the location where the specified date exist in the Holidays sheet

Set RngFind = Worksheets("Holidays").Columns(1).Find(LngDate)

On Error GoTo 0

'Checking whether it is holiday on the given date

If Not RngFind Is Nothing Then

OK = "Holiday"

GoTo Last

End If

'Checking whether it is Saturday on given date

If InclSaturdays Then

If Weekday(LngDate, 2) = 6 Then

OK = "Holiday"

GoTo Last

End If

End If

'Checking whether it is Sunday on given date

If InclSundays Then

If Weekday(LngDate, 2) = 7 Then

OK = "Holiday"

End If

End If

Last:

IsHoliday = OK

End Function

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]