VBA-weekdag - Stapsgewijze handleiding voor weekdagfunctie in VBA

Excel VBA Weekdag-functie

Weekdag in VBA is een datum- en tijdfunctie die wordt gebruikt om de weekdag van een bepaalde datum te identificeren, mits deze als invoer is, deze functie retourneert een geheel getal van 1 tot 7 bereik, er is een optioneel argument voor deze functie die de eerste dag van de week, maar als we de eerste dag van de week niet opgeven, gaat de functie er standaard van uit dat zondag de eerste dag van de week is.

Kunnen we het weekdagnummer zien door naar een bepaalde datum te kijken? Ja, we kunnen het dagnummer die week vertellen, afhankelijk van de begindag van de week. In normale werkbladfuncties hebben we een functie genaamd WEEKDAY in Excel om het nummer van de week voor een bepaalde datum te vertellen. Ook in VBA hebben we dezelfde functie om hetzelfde te vinden.

Wat doet Weekday Function?

De functie weekdag retourneert het dagnummer van de opgegeven datum in de week. Bijvoorbeeld, als je data 01 hebben st april tot en met 07 th april en als je wilt om de dag van de datum 05 weten th april als de begindag van de week is van maandag, is de 5 e dag.

Om dit te vinden, hebben we dezelfde functie als “Weekdag” zowel in een werkblad als in VBA. Hieronder staat de syntaxis van de functie.

Datum: voor welke datum we proberen de weekdag te vinden. Dit moet een juiste datum zijn met het juiste formaat.

(Eerste dag van de week): Om de weekdag van de opgegeven datum te bepalen, moeten we vermelden wat de eerste dag van de week is. Standaard beschouwt VBA "maandag" als de begindag van de week. Daarnaast kunnen wij ook onderstaande dagen leveren.

Voorbeelden

Voorbeeld 1

Om de procedure te beginnen, wil ik eerst beginnen met een eenvoudig voorbeeld. Nu gaan we proberen de weekdag te vinden voor de datum “10-april-2019”.

Stap 1: definieer de variabele als String

Code:

Sub Weekday_Example1 () Dim k As String End Sub
Stap 2: Wijs waarde toe aan de variabele

Wijs de waarde toe aan de variabele "k" door de WEEKDAY-functie toe te passen.

Code:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Stap 3: Voer de datum in bij Functie

De datum die we hier testen is "10-apr-2019", dus geef de datum door als "10-apr-2019".

Code:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-apr-2019" End Sub
Stap 4: toon de waarde van de variabele in MsgBox

Standaard wordt de eerste dag van de week als 'maandag' beschouwd, dus negeer dit gedeelte. Sluit de beugel. De volgende regel toont de waarde van variabele "k" in het VBA-berichtvenster.

Code:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-apr-2019") MsgBox k End Sub

Ok, we zijn klaar.

Als we de code uit te voeren, zullen we het resultaat als “4” omdat het beginnen van zondag, de verstrekte datum (10-Apr-2019) valt op de 4 krijgen ste dag van de week.

Opmerking: de begindag van de week op mijn systeem is 'zondag'.

Evenzo, als u de startdag van de week wijzigt, blijft deze variëren. Hieronder is een voorbeeldregel voor hetzelfde.

Code:

k = Weekday ("10-apr-2019", vbMonday) 'Dit geeft als resultaat 3 k = Weekday ("10-apr-2019", vbTuesday)' Dit retourneert 2 k = Weekday ("10-apr-2019", vbWed Wednesday) 'Dit retourneert 1 k = Weekday ("10-apr-2019", vbThursday)' Dit retourneert 7 k = Weekday ("10-apr-2019", vbFriday) 'Dit retourneert 6 k = Weekday ("10-apr-2019) ", vbSaturday) 'Dit retourneert 5 k = Weekday (" 10-apr-2019 ", vbSunday)' Dit retourneert 4

Voorbeeld # 2 - Aankomen of de datum in het weekend is of niet

Stel dat u een datum zoals hieronder heeft en u wilt de volgende weekenddatum vinden, dan kunnen we de WEEKDAY-functie gebruiken om tot de resultaten te komen.

We need to use WEEKDAY with IF condition and loops to arrive at the result. I have written the code for you to go line by line to get the logic.

Code:

Sub Weekend_Dates() Dim k As Integer For k = 2 To 9 If Weekday(Cells(k, 1).Value, vbMonday) = 1 Then Cells(k, 2).Value = Cells(k, 1) + 5 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 2 Then Cells(k, 2).Value = Cells(k, 1) + 4 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 3 Then Cells(k, 2).Value = Cells(k, 1) + 3 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 4 Then Cells(k, 2).Value = Cells(k, 1) + 2 ElseIf Weekday(Cells(k, 1).Value, vbMonday) = 5 Then Cells(k, 2).Value = Cells(k, 1) + 1 Else Cells(k, 2).Value = "This is actually the weekend Date" End If Next k End Sub

This will arrive at the results below.

Kijk naar de cellen B6 en B7. We kregen het resultaat als "Dit is eigenlijk de weekenddatum" omdat datums "04-mei-2019" en "06-april-2019" eigenlijk weekenddata zijn, dus het is niet nodig om de weekenddatum weer te geven voor weekenddata. Standaard krijgen we het resultaat als volgt.

Interessante artikelen...