Excel VBA ukedagsfunksjon
Ukedag i VBA er en dato- og tidsfunksjon som brukes til å identifisere ukedagen til en gitt dato forutsatt at den er en inngang, denne funksjonen returnerer et heltall fra 1 til 7-området, det er et valgfritt argument gitt til denne funksjonen som er første dag i uken, men hvis vi ikke gir den første dagen i uken, antar funksjonen søndag som den første dagen i uken som standard.
Kan vi fortelle ukedagstallet ved å se på en bestemt dato? Ja, vi kan fortelle dagsnummeret den uken, avhengig av startdagen i uken. I vanlige regnearkfunksjoner har vi en funksjon kalt WEEKDAY i excel for å fortelle ukenummeret for en bestemt dato. Også i VBA har vi samme funksjon for å finne det samme.

Hva gjør Weekday Function?
Ukedagsfunksjonen returnerer den oppgitte datoens dagnummer i uken. For eksempel, hvis du har datoer 01 st april til 07 th April og hvis du ønsker å vite dagen av datoen 05 th april hvis du starter dagen i uken er fra mandag, er det fem th dagen.
For å finne dette har vi samme funksjon som "Ukedag" i et regneark så vel som i VBA. Nedenfor er syntaksen til funksjonen.

Dato: For hvilken dato vi prøver å finne ukedagen. Dette skal være en riktig dato med riktig format.
(Første ukedag): For å bestemme ukedagen til den angitte datoen, må vi nevne hva som er den første dagen i uken. Som standard anser VBA “mandag” som startdagen i uken. Bortsett fra dette, kan vi også levere dagene nedenfor.

Eksempler
Eksempel 1
For å starte saksgangen, la meg starte med et enkelt eksempel først. Nå vil vi prøve å finne ukedagen for datoen “10. april-2019”.
Trinn 1: Definer variabelen som streng
Kode:
Under ukedag_eksempel1 () Dim k som streng slutt sub

Trinn 2: Tilordne verdien til variabelen
Tilordne verdien til variabelen “k” ved å bruke WEEKDAY-funksjonen.
Kode:
Under ukedag_eksempel1 () Dim k som streng k = ukedag (slutt sub

Trinn 3: Angi dato i funksjon
Datoen vi tester her er “10. april-2019”, så send datoen som “10. april-2019”.
Kode:
Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub

Trinn 4: Vis verdien av variabelen i MsgBox
Som standard tar det den første dagen i uken som "mandag", så ignorer denne delen. Lukk braketten. Neste linje viser verdien av variabelen “k” i VBA-meldingsboksen.
Kode:
Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019") MsgBox k End Sub

Ok, vi er ferdige.
Hvis vi kjører koden, vil vi få resultatet som “4” fordi fra søndag, gitt dato (10-Apr-2019) faller på 4 th dagen i uken.
Merk: Systemets startdag i uken er "søndag".
På samme måte, hvis du endrer ukedagens startdag, fortsetter det å variere. Nedenfor er et eksempel på en linje.
Kode:
k = Weekday ("10-Apr-2019", vbMonday) 'Dette returnerer 3 k = Weekday ("10-Apr-2019", vbTuesday)' Dette returnerer 2 k = Weekday ("10-Apr-2019", vbWednesday) 'Dette returnerer 1 k = Ukedag ("10-Apr-2019", vbThursday)' Dette returnerer 7 k = Ukedag ("10-Apr-2019", vbFriday) 'Dette returnerer 6 k = Ukedag ("10-Apr-2019 ", vbSaturday) 'Dette returnerer 5 k = Ukedag (" 10-Apr-2019 ", vbSunday)' Dette returnerer 4
Eksempel 2 - Ankomme om datoen er i helgen eller ikke
Anta at du har en dato som nedenfor, og du vil finne neste helgedato, så kan vi bruke WEEKDAY-funksjonen for å komme til resultatene.

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å cellene B6 og B7. Vi fikk resultatet som "Dette er faktisk helgedato" fordi datoene "04-mai-2019" og "06-apr-2019" er faktisk helgedatoer, så det er ikke nødvendig å vise helgedato for helgedatoer. Som standard får vi resultatet som dette.