VBA všedný deň - Sprievodca funkciou všedný deň vo VBA

Funkcia Excel VBA všedný deň

Deň v týždni vo VBA je funkcia dátumu a času, ktorá sa používa na identifikáciu dňa v týždni daného dátumu za predpokladu, že je to ako vstup. Táto funkcia vracia celočíselnú hodnotu od 1 do 7 rozsahu, k tejto funkcii je poskytnutý voliteľný argument, ktorý je prvý deň v týždni, ale ak neposkytneme prvý deň v týždni, potom funkcia predvolene predpokladá nedeľu ako prvý deň v týždni.

Môžeme zistiť počet dní v týždni podľa konkrétneho dátumu? Áno, vieme určiť číslo dňa v týždni, v závislosti od začiatočného dňa v týždni. V bežných funkciách pracovných hárkov máme funkciu s názvom WEEKDAY in Excel, pomocou ktorej zisťujeme číslo týždňa pre konkrétny dátum. Aj vo VBA máme rovnakú funkciu, aby sme našli to isté.

Čo robí funkcia všedný deň?

Funkcia všedný deň vráti číslo dňa zadaného dátumu v týždni. Napríklad, ak máte termín 01 st apríl až 07 th apríla a ak chcete vedieť, deň odo 05 th apríla v prípade, že počnúc dňom v týždni je od pondelka, je to 5 th denne.

Aby sme to našli, máme rovnakú funkciu ako „všedný deň“ v pracovnom hárku aj vo VBA. Nižšie je uvedená syntax funkcie.

Dátum: Pre ktorý dátum sa snažíme nájsť všedný deň. Mal by to byť správny dátum so správnym formátom.

(Prvý deň v týždni): Aby sme určili všedný deň poskytnutého Dátumu, musíme spomenúť, čo je prvý deň v týždni. VBA predvolene považuje deň začatia týždňa za „pondelok“. Okrem toho môžeme dodať aj nasledujúce dni.

Príklady

Príklad č

Na začatie konania mi dovoľte najskôr začať jednoduchým príkladom. Teraz sa pokúsime nájsť všedný deň pre dátum „10. apríla 2019“.

Krok 1: Definujte premennú ako String

Kód:

Sub Weekday_Example1 () Dim k As String End Sub
Krok 2: Priraďte hodnotu premennej

Priraďte hodnotu k premennej „k“ pomocou funkcie WEEKDAY.

Kód:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Krok 3: Zadajte dátum do funkcie

Dátum, ktorý tu testujeme, je „10. apríla 2019“, takže tento dátum zadajte ako „10. apríla 2019“.

Kód:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub
Krok 4: Zobraziť hodnotu premennej v aplikácii MsgBox

Predvolene sa prvý deň v týždni považuje za pondelok. Túto časť preto ignorujte. Zatvorte konzolu. Nasledujúci riadok zobrazuje hodnotu premennej „k“ v okne správy VBA.

Kód:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019") MsgBox k End Sub

Dobre, skončili sme.

Ak spustíme kód, dostaneme výsledok ako „4“, pretože od nedele pripadá uvedený dátum (10. apríla 2019) na 4. deň v týždni.

Poznámka: Počiatočný deň môjho týždňa je „nedeľa“.

Podobne, ak zmeníte začiatočný deň v týždni, stále sa to líši. Nižšie je uvedený príklad riadku pre to isté.

Kód:

k = všedný deň ("10. apríla 2019", vbMonday) 'Vráti 3 k = Pracovný deň ("10. apríla 2019", vbTuesday)' Vráti 2 k = Pracovný deň ("10. apríla 2019", vbWednesday) „Vráti sa 1 k = Pracovný deň („ 10. apríla 2019 “, vbThursday)„ Vráti sa 7 k = Pracovný deň („10. apríla 2019“, vbFriday) „Vráti sa 6 k = Pracovný deň („ 10. apríla 2019 “ ", vbSaturday) 'Toto vráti 5 k = Pracovný deň (" 10. apríla 2019 ", vbSunday)' Vráti 4

Príklad č. 2 - Príďte, či je dátum víkend alebo nie

Predpokladajme, že máte dátum, ako je uvedený nižšie, a chcete vyhľadať dátum nasledujúceho víkendu. Potom môžeme pomocou funkcie WEEKDAY dospieť k výsledkom.

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.

Pozrite sa na bunky B6 a B7. Výsledok sme dostali ako „Toto je vlastne víkendový dátum“, pretože dátumy „4. máj 2019“ a „6. apríl 2019“ sú vlastne víkendové dátumy, takže pre víkendové dátumy nie je potrebné uvádzať víkendový dátum. Výsledok sa predvolene zobrazuje takto.

Zaujímavé články...