VBA Veckodag - Steg för steg-guide till veckodagsfunktion i VBA

Innehållsförteckning

Excel VBA Weekday-funktion

Veckodag i VBA är en datum- och tidsfunktion som används för att identifiera veckodagen för ett visst datum förutsatt att det är en inmatning, den här funktionen returnerar ett heltal från 1 till 7-intervallet, det finns ett valfritt argument för denna funktion som är första veckodagen men om vi inte tillhandahåller den första veckodagen antar funktionen som söndag som första dag i veckan.

Kan vi ange veckodagens nummer genom att titta på ett visst datum? Ja, vi kan berätta dagnumret den veckan, beroende på veckans startdag. I vanliga kalkylbladfunktioner har vi en funktion som heter WEEKDAY i excel för att ange veckans nummer för ett visst datum. Även i VBA har vi samma funktion för att hitta samma sak.

Vad gör Weekday Function?

Veckodagfunktionen returnerar det angivna datumets dagnummer i veckan. Till exempel, om du har datum 01 st april till 07 : e april och om du vill veta dagen för datum 05 : e April om startveckodagen är måndag, är det den 5 : e dagen.

För att hitta detta har vi samma funktion som ”Veckodag” i ett kalkylblad såväl som i VBA. Nedan visas funktionens syntax.

Datum: För vilket datum vi försöker hitta veckodagen. Detta borde vara ett korrekt datum med rätt format.

(Veckans första dag): För att bestämma veckodagen för det angivna datumet måste vi nämna vad som är den första dagen i veckan. Som standard anser VBA "måndag" som veckans startdag. Bortsett från detta kan vi också leverera nedanstående dagar.

Exempel

Exempel 1

För att inleda förfarandet, låt mig börja med ett enkelt exempel först. Nu ska vi försöka hitta veckodagen för datumet "10 april-2019".

Steg 1: Definiera variabeln som sträng

Koda:

Sub Weekday_Example1 () Dim k As String End Sub
Steg 2: Tilldela variabeln värde

Tilldela värdet till variabeln "k" genom att använda WEEKDAY-funktionen.

Koda:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Steg 3: Ange datum i funktion

Datumet vi testar här är "10-apr-2019", så skicka datumet som "10-apr-2019".

Koda:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub
Steg 4: Visa variabelvärde i MsgBox

Som standard tar det första veckodagen som "måndag", så ignorera den här delen. Stäng fästet. Nästa rad visar värdet på variabeln “k” i meddelandefältet VBA.

Koda:

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

Okej, vi är klara.

Om vi ​​kör koden får vi resultatet som ”4” eftersom från och med söndagen faller det angivna datumet (10-apr-2019) på den fjärde veckodagen.

Obs! Mitt systems startdag i veckan är "söndag".

På samma sätt, om du ändrar veckodagens startdag, fortsätter det att variera. Nedan följer en exempelrad för samma.

Koda:

k = Weekday ("10-Apr-2019", vbMonday) 'Detta returnerar 3 k = Weekday ("10-Apr-2019", vbTuesday)' Detta returnerar 2 k = Weekday ("10-Apr-2019", vbWednesday) 'Detta returnerar 1 k = Veckodag ("10-apr-2019", vbThursday)' Detta returnerar 7 k = Veckodag ("10-apr-2019", vbFriday) 'Detta returnerar 6 k = Veckodag ("10-apr-2019 ", vbSaturday) 'Detta returnerar 5 k = Veckodag (" 10-apr-2019 ", vbSunday)' Detta returnerar 4

Exempel # 2 - Anländer om datumet är i helgen eller inte

Antag att du har ett datum som nedan, och att du vill hitta nästa helgdatum, då kan vi använda WEEKDAY-funktionen för att nå resultaten.

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.

Titta på cellerna B6 & B7. Vi fick resultatet som "Detta är faktiskt helgedatumet" eftersom datum "04-maj-2019" och "06-apr-2019" är faktiskt helgdatum, så du behöver inte visa helgdatum för helgdatum. Som standard får vi resultatet som detta.

Intressanta artiklar...