VBA hétköznap - Lépésről lépésre útmutató a hétköznapi funkcióhoz a VBA-ban

Excel VBA hétköznapi funkció

A hétnap a VBA-ban egy dátum és idő függvény, amelyet egy adott dátum hétköznapjának azonosítására használunk, feltéve, hogy inputként ez a függvény egész számot ad vissza 1 és 7 tartományok között. Ehhez a függvényhez egy opcionális argumentum is tartozik, amely a hét első napja, de ha nem adjuk meg a hét első napját, akkor a funkció alapértelmezés szerint a vasárnapot feltételezi a hét első napjának.

Meg tudjuk mondani a hétköznap számát egy adott dátum megtekintésével? Igen, meg tudjuk mondani az adott hét napszámát, a hét kezdő napjától függően. A rendszeres munkalapfüggvényekben van egy WEEKDAY nevű függvény az excel programban, amely megadja az adott dátum hét számát. A VBA-ban is ugyanaz a funkciónk, hogy ugyanazt megtaláljuk.

Mit csinál a hétköznapi funkció?

A hétköznap függvény visszaadja a megadott dátum napszámát a hétben. Például, ha van dátumait 01 st április 07 -én áprilisban és ha azt szeretné tudni, hogy a nap a dátum 05 -én április, ha a kezdő napja a hét: Hétfő, ez a 5 -én napon.

Ennek megtalálásához ugyanazt a funkciót látjuk el, mint a „Hétköznap” munkalapon, valamint a VBA-ban. Az alábbiakban látható a függvény szintaxisa.

Dátum: Melyik dátumra próbáljuk megtalálni a hétköznapokat. Ennek megfelelő formátumú dátumnak kell lennie.

(A hét első napja): A megadott Dátum hétköznapjának meghatározásához meg kell említenünk, hogy mi a hét első napja. Alapértelmezés szerint a VBA a „hétfőt” tekinti a hét kezdő napjának. Ettől eltekintve az alábbi napokat is tudjuk szállítani.

Példák

1. példa

Az eljárás megkezdéséhez először egy egyszerű példával kezdjem. Most megpróbáljuk megtalálni a „2019. április 10.” dátum hétnapját.

1. lépés: Határozza meg a változót karakterláncként

Kód:

Hétnap__példa1 () Dim k As String End Sub
2. lépés: Rendeljen értéket a változóhoz

Rendelje hozzá az értéket a „k” változóhoz a WEEKDAY függvény alkalmazásával.

Kód:

Hétnap_Példa1 () Dim k As String k = Hétnap (Sub. Vége
3. lépés: Adja meg a dátumot a Funkcióban

Az itt tesztelt dátum „2019. április 10.”, ezért adja meg a dátumot „2019. április 10.”.

Kód:

Sub Weekday_Példa1 () Dim k As String k = Weekday ("2019. április 10."
4. lépés: A változó értékének megjelenítése az MsgBoxban

Alapértelmezés szerint a hét első napját hétfőnek tekinti, ezért hagyja figyelmen kívül ezt a részt. Csukja be a konzolt. A következő sor a „k” változó értékét mutatja a VBA üzenetmezőben.

Kód:

Hétnap_Example1 () Dim k As String k = Hétnap ("2019. április 10.") MsgBox k Vége Sub

Ok, készen vagyunk.

Ha fut a kód, mi lesz az eredmény, mint a „4”, mert kezdve vasárnap, az előírt időpontban (10-Apr-2019) esik a 4 -én a hét napját.

Megjegyzés: A rendszerem hétének kezdőnapja „vasárnap”.

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.

Nézze meg a B6 és B7 cellákat. Az eredményt így kaptuk: „Ez valójában a hétvégi dátum”, mert a „2019. május 4.” és a „2019. április 6.” dátumok valójában hétvégi dátumok, ezért nem kell megadni a hétvégi dátumot a hétvégi dátumokra. Alapértelmezés szerint az eredményt így kapjuk meg.

érdekes cikkek...