VBA Weekday - Trinnvis guide til ukedagsfunksjon i VBA

Innholdsfortegnelse

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.

Interessante artikler...