VBA Wochentag

Excel VBA-Wochentagsfunktion

Wochentag in VBA ist eine Datums- und Zeitfunktion, mit der der Wochentag eines bestimmten Datums als Eingabe identifiziert wird. Diese Funktion gibt einen ganzzahligen Wert zwischen 1 und 7 zurück. Für diese Funktion wird ein optionales Argument bereitgestellt Erster Wochentag. Wenn wir jedoch nicht den ersten Wochentag angeben, geht die Funktion standardmäßig von Sonntag als erstem Wochentag aus.

Können wir die Wochentagsnummer anhand eines bestimmten Datums ermitteln? Ja, wir können die Tagesnummer dieser Woche abhängig vom Starttag der Woche angeben. In regulären Arbeitsblattfunktionen haben wir eine Funktion namens WEEKDAY in Excel, um die Nummer der Woche für ein bestimmtes Datum anzugeben. Auch in VBA haben wir die gleiche Funktion, um das Gleiche zu finden.

Was macht die Wochentagsfunktion?

Die Wochentagsfunktion gibt die Nummer des angegebenen Datums in der Woche zurück. Wenn Sie beispielsweise Daten vom 01. April bis zum 07. April haben und den Tag des Datums 05. April wissen möchten, wenn der Wochentag Montag ist, ist dies der 5. Tag.

Um dies zu finden, haben wir die gleiche Funktion "Wochentag" in einem Arbeitsblatt sowie in VBA. Unten ist die Syntax der Funktion.

Datum: Für welches Datum versuchen wir den Wochentag zu finden. Dies sollte ein korrektes Datum mit dem richtigen Format sein.

[Erster Tag der Woche]: Um den Wochentag der bereitgestellten zu bestimmen Datum müssen wir erwähnen , was der erste Tag der Woche ist. Standardmäßig betrachtet VBA "Montag" als Starttag der Woche. Abgesehen davon können wir auch die folgenden Tage liefern.

Beispiele

Sie können diese VBA WeekDay Function Excel-Vorlage hier herunterladen - VBA WeekDay Function Excel-Vorlage

Beispiel 1

Lassen Sie mich zunächst mit einem einfachen Beispiel beginnen. Jetzt werden wir versuchen, den Wochentag für das Datum „10. April 2019“ zu finden.

Schritt 1: Definieren Sie die Variable als String

Code:

 Sub Weekday_Example1 () Dim k As String End Sub 

Schritt 2: Weisen Sie der Variablen einen Wert zu

Weisen Sie den Wert der Variablen „k“ zu, indem Sie die Funktion WEEKDAY anwenden.

Code:

 Sub Weekday_Example1 () Dim k As String k = Wochentag (End Sub 

Schritt 3: Geben Sie das Datum in die Funktion ein

Das Datum, das wir hier testen, ist "10-Apr-2019". Geben Sie das Datum daher als "10-Apr-2019" ein.

Code:

 Sub Weekday_Example1 () Dim k As String k = Wochentag ("10-Apr-2019" End Sub 

Schritt 4: Wert der Variablen in MsgBox anzeigen

Standardmäßig wird der erste Tag der Woche als "Montag" verwendet. Ignorieren Sie diesen Teil. Schließen Sie die Halterung. Zeigen Sie in der nächsten Zeile den Wert der Variablen "k" im VBA-Meldungsfeld an.

Code:

 Sub Weekday_Example1 () Dim k As String k = Wochentag ("10-Apr-2019") MsgBox k End Sub 

Ok, wir sind fertig.

Wenn wir den Code ausführen, erhalten wir das Ergebnis als "4", da ab Sonntag das angegebene Datum (10.04.2019) auf den 4. Wochentag fällt.

Hinweis: Der Wochentag meines Systems ist "Sonntag".

Wenn Sie den Starttag der Woche ändern, ändert sich dies ebenfalls ständig. Unten finden Sie eine Beispielzeile dafür.

Code:

k = Wochentag ("10-Apr-2019", vbMontag) 'Dies ergibt 3 k = Wochentag ("10-Apr-2019", vbTuesday)' Dies gibt 2 k = Wochentag ("10-Apr-2019", vbMittwoch) zurück. 'Dies gibt 1 k = Wochentag ("10-Apr-2019", vbThursday) zurück.' Dies gibt 7 k = Wochentag ("10-Apr-2019", vbFriday) zurück. 'Dies gibt 6 k = Wochentag ("10-Apr-2019" zurück ", vbSamstag) 'Dies gibt 5 k = Wochentag zurück (" 10-Apr-2019 ", vbSunday)' Dies gibt 4 zurück 

Beispiel 2 - Ankunft, ob das Datum am Wochenende ist oder nicht

Angenommen, Sie haben ein Datum wie das folgende und möchten das Datum für das nächste Wochenende finden, dann können wir die WOCHENTAG-Funktion verwenden, um zu den Ergebnissen zu gelangen.

Wir müssen WEEKDAY mit IF-Bedingung und Schleifen verwenden, um zum Ergebnis zu gelangen. Ich habe den Code geschrieben, damit Sie Zeile für Zeile gehen, um die Logik zu erhalten.

Code:

 Sub Weekend_Dates () Dim k As Integer Für k = 2 bis 9 Wenn Wochentag (Zellen (k, 1) .Wert, vbMontag) = 1 Dann Zellen (k, 2) .Wert = Zellen (k, 1) + 5 Sonst Wochentag (Zellen (k, 1) .Wert, vbMontag) = 2 Dann Zellen (k, 2) .Wert = Zellen (k, 1) + 4 Sonst an Wochentagen (Zellen (k, 1) .Wert, vbMontag) = 3 Dann Zellen (k, 2) .Wert = Zellen (k, 1) + 3 Sonst an Wochentagen (Zellen (k, 1) .Wert, vbMontag) = 4 Dann Zellen (k, 2) .Wert = Zellen (k, 1) + 2 Andernfalls Wochentag (Zellen (k, 1) .Wert, vbMontag) = 5 Dann Zellen (k, 2) .Wert = Zellen (k, 1) + 1 Sonst Zellen (k, 2) .Wert = "Dies ist eigentlich das Wochenende Datum "End If Next k End Sub 

Dies führt zu den folgenden Ergebnissen.

Schauen Sie sich die Zellen B6 und B7 an. Wir haben das Ergebnis als "Dies ist tatsächlich das Wochenenddatum" erhalten, da die Daten "04-Mai-2019" und "06-Apr-2019" tatsächlich Wochenenddaten sind, sodass das Wochenenddatum nicht angezeigt werden muss für Wochenendtermine. Standardmäßig erhalten wir das Ergebnis wie folgt.