Excel VBA-hverdagsfunktion
Ugedag i VBA er en dato- og tidsfunktion, der bruges til at identificere ugedagen for en given dato, forudsat at den er som input, denne funktion returnerer et heltal fra 1 til 7 interval, der er et valgfrit argument til denne funktion, som er første ugedag, men hvis vi ikke angiver den første ugedag, antager funktionen som standard søndag som den første ugedag.
Kan vi fortælle ugedagsnummeret ved at se på en bestemt dato? Ja, vi kan fortælle dagnummeret den uge, afhængigt af ugedagens startdag. I almindelige regnearksfunktioner har vi en funktion kaldet WEEKDAY i excel for at fortælle ugenummeret for en bestemt dato. Også i VBA har vi den samme funktion til at finde den samme ting.

Hvad gør Weekday Function?
Ugedag-funktionen returnerer den angivne datos dagnummer i ugen. For eksempel, hvis du har datoer 01 st April til 07 th april og hvis du ønsker at vide den dag i dag 05 th April hvis den første dag i ugen er fra mandag, er det den 5 th dag.
For at finde dette har vi den samme funktion som "Ugedag" i et regneark såvel som i VBA. Nedenfor er funktionens syntaks.

Dato: Til hvilken dato vi prøver at finde hverdagen. Dette skal være en korrekt dato med det korrekte format.
(Første ugedag): For at bestemme ugedagen for den angivne dato skal vi nævne, hvad der er den første ugedag. Som standard betragter VBA "mandag" som ugens startdag. Bortset fra dette kan vi også levere nedenstående dage.

Eksempler
Eksempel nr. 1
For at starte proceduren, lad mig starte med et simpelt eksempel først. Nu vil vi forsøge at finde ugedagen til datoen “10. april-2019”.
Trin 1: Definer variablen som streng
Kode:
Under ugedag_eksempel1 () Dim k som streng slut sub

Trin 2: Tildel værdien til variablen
Tildel værdien til variablen “k” ved at anvende WEEKDAY-funktionen.
Kode:
Under ugedag_eksempel1 () Dim k som streng k = ugedag (afslut sub

Trin 3: Indtast dato i funktion
Den dato, vi tester her, er “10.-apr-2019”, så send datoen som “10.-apr-2019”.
Kode:
Under ugedag_eksempel1 () dæmp k som streng k = ugedag ("10. apr. 2019" afslut sub

Trin 4: Vis variabelens værdi i MsgBox
Som standard tager det den første dag i ugen som "mandag", så ignorér denne del. Luk beslaget. Den næste linje viser værdien af variablen “k” i VBA-meddelelsesfeltet.
Kode:
Under ugedag_eksempel1 () dæmp k som streng k = ugedag ("10. apr-2019") MsgBox k afslut sub

Okay, vi er færdige.
Hvis vi køre koden, vil vi få resultatet som ”4”, fordi startende fra søndag, den medfølgende dato (10 Apr 2019) falder på 4 th dag i ugen.
Bemærk: Mit systems startdag i ugen er "søndag".
Similarly, if you change the start day of the week, it keeps varying. Below is an example line for the same.
Code:
k = Weekday("10-Apr-2019", vbMonday) ‘This returns 3 k = Weekday("10-Apr-2019", vbTuesday) ‘This returns 2 k = Weekday("10-Apr-2019", vbWednesday) ‘This returns 1 k = Weekday("10-Apr-2019", vbThursday) ‘This returns 7 k = Weekday("10-Apr-2019", vbFriday) ‘This returns 6 k = Weekday("10-Apr-2019", vbSaturday) ‘This returns 5 k = Weekday("10-Apr-2019", vbSunday) ‘This returns 4
Example #2 - Arrive Whether the Date is on Weekend or Not
Assume you have a date like the below, and you want to find the next weekend date, then we can use the WEEKDAY function to arrive at the results.

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.

Se på cellerne B6 & B7. Vi fik resultatet som "Dette er faktisk weekenddatoen", fordi datoer "04-maj-2019" og "06-apr-2019" faktisk er weekenddatoer, så det er ikke nødvendigt at vise weekenddatoen for weekenddatoer. Som standard får vi resultatet som dette.