Delovni dan VBA - Korak za korakom Vodnik po funkciji med tednom v VBA

Excel VBA Delovni dan

Delovni dan v VBA je funkcija datuma in časa, ki se uporablja za določitev dneva v tednu določenega datuma, če je ta vhodna vrednost; ta funkcija vrne celoštevilčno vrednost od 1 do 7, tej funkciji je na voljo neobvezen argument, ki je prvi dan v tednu, če pa ne določimo prvega v tednu, funkcija privzeto predpostavlja nedeljo kot prvi dan v tednu.

Ali lahko določimo številko delovnega dne, če pogledamo določen datum? Da, lahko določimo številko dneva v tem tednu, odvisno od začetnega dneva v tednu. V običajnih funkcijah delovnega lista imamo v Excelu funkcijo WEEKDAY, ki določa število tednov za določen datum. Tudi v VBA imamo isto funkcijo, da najdemo isto stvar.

Kaj počne Funkcija tedna?

Funkcija tedenskega dne vrne številko dneva navedenega datuma v tednu. Na primer, če imate rok 01 st aprila do 07 th aprila, in če želite izvedeti dan za dnem 05 th aprila, če je začetni dan v tednu od ponedeljka, je 5 th dan.

Da bi to našli, imamo na delovnem listu kot v VBA enako funkcijo kot »Weekday«. Spodaj je sintaksa funkcije.

Datum: Za kateri datum poskušamo najti delovni dan. To bi moral biti pravi datum z ustrezno obliko.

(Prvi dan v tednu): Če želite določiti delovni dan navedenega datuma, moramo omeniti, kateri je prvi dan v tednu. VBA privzeto upošteva »ponedeljek« kot začetni dan v tednu. Poleg tega lahko ponudimo tudi naslednje dni.

Primeri

Primer # 1

Za začetek postopka naj najprej začnem s preprostim primerom. Zdaj bomo poskusili najti delovni dan za datum "10. april 2019".

1. korak: Spremenljivko definirajte kot niz

Koda:

Sub Weekday_Example1 () Dim k As String End Sub
2. korak: Spremenljivki dodelite vrednost

Spremenljivki "k" dodelite vrednost z uporabo funkcije WEEKDAY.

Koda:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
3. korak: v funkcijo vnesite datum

Datum, ki ga tukaj testiramo, je »10. april 2019«, zato navedite datum kot »10. april 2019«.

Koda:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10. april-2019" Konec Sub
4. korak: Prikažite vrednost spremenljivke v MsgBoxu

Privzeto je prvi dan v tednu »ponedeljek«, zato tega dela prezrite. Zaprite nosilec. V naslednji vrstici je prikazana vrednost spremenljivke "k" v polju za sporočila VBA.

Koda:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10. april 2019") MsgBox k End Sub

Ok, končali smo.

Če smo teči kodo, bomo dobili rezultat kot "4", ker se začne v nedeljo, je predvidel, datum (10-Apr-2019) pade na 4 th dan v tednu.

Opomba: Začetni dan v tednu mojega sistema je »nedelja«.

Če spremenite začetni dan v tednu, se spreminja. Spodaj je primer vrstice za isto.

Koda:

k = delovni dan ("10. april 2019", vbMonday) 'To vrne 3 k = delovni dan ("10. april 2019", vbTuesday)' Vrne 2 k = delovni dan ("10. april 2019", vbWednesday) 'To vrne 1 k = delovni dan ("10. april 2019", vbThursday)' To vrne 7 k = delovni dan ("10. april 2019", vbFriday) 'Vrne 6 k = delovni dan ("10. april 2019 ", vbSaturday) 'Vrne 5 k = Delovni dan (" 10. april 2019 ", vbSunday)' Vrne 4

2. primer - Prihodite, ali je datum vikend ali ne

Predpostavimo, da imate datum, kot je spodaj, in želite najti datum naslednjega vikenda, potem lahko s pomočjo funkcije WEEKDAY pridemo do rezultatov.

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.

Poglejte celice B6 in B7. Rezultat smo dobili kot "To je dejansko datum vikenda", ker sta datuma "04. maj 2019" in "06. april 2019" dejansko datum vikenda, zato za vikende ni treba prikazati datuma vikenda. Privzeto dobimo rezultat kot ta.

Zanimive Članki...