Den VBA - Podrobný průvodce funkcí pracovního dne ve VBA

Funkce pracovního dne aplikace Excel VBA

Den v týdnu ve VBA je funkce data a času, která se používá k identifikaci dne v týdnu daného data za předpokladu, že je to jako vstup, tato funkce vrací celočíselnou hodnotu od 1 do 7, k této funkci je k dispozici volitelný argument, který je první den v týdnu, ale pokud nezadáme první den v týdnu, funkce ve výchozím nastavení předpokládá neděli jako první den v týdnu.

Můžeme zjistit číslo dne v týdnu při pohledu na konkrétní datum? Ano, můžeme zjistit číslo dne v daném týdnu, v závislosti na počátečním dni v týdnu. V běžných funkcích listu máme funkci zvanou WEEKDAY v aplikaci Excel, která sděluje číslo týdne pro konkrétní datum. I ve VBA máme stejnou funkci, abychom našli stejnou věc.

Co dělá funkce všední den?

Funkce všední den vrací číslo dne zadaného data v týdnu. Například, pokud máte termín 01 st duben až 07 th dubna a pokud chcete vědět, den ode 05 th dubna v případě, že počínaje dnem v týdnu je od pondělí, je to 5 th denně.

Abychom to našli, máme stejnou funkci jako „Den v týdnu“ v listu i ve VBA. Níže je uvedena syntaxe funkce.

Datum: Pro které datum se snažíme najít všední den. Mělo by to být správné datum se správným formátem.

(První den v týdnu): Abychom mohli určit den v týdnu poskytnutého Datum, musíme zmínit, jaký je první den v týdnu. Ve výchozím nastavení považuje VBA za výchozí den v týdnu „pondělí“. Kromě toho můžeme dodat i následující dny.

Příklady

Příklad č. 1

Chcete-li zahájit řízení, dovolte mi nejprve začít jednoduchým příkladem. Nyní se pokusíme najít všední den pro datum „10. dubna-2019“.

Krok 1: Definujte proměnnou jako řetězec

Kód:

Sub Weekday_Example1 () Dim k As String End Sub
Krok 2: Přiřaďte proměnné hodnotu

Přiřaďte hodnotu proměnné „k“ pomocí funkce WEEKDAY.

Kód:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Krok 3: Zadejte datum do funkce

Datum, které zde testujeme, je „10. dubna 2019“, takže datum předejte jako „10. dubna 2019“.

Kód:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub
Krok 4: Zobrazit hodnotu proměnné v MsgBoxu

Ve výchozím nastavení se první den v týdnu označuje jako „pondělí“, takže tuto část ignorujte. Zavřete držák. Následující řádek ukazuje hodnotu proměnné „k“ v okně se zprávou VBA.

Kód:

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

Dobře, jsme hotovi.

Budeme-li spustit kód, dostaneme výsledek jako „4“, protože od neděle za předpokladu, datum (10-Apr-2019) připadá na 4. ročník den v týdnu.

Poznámka: Počáteční den mého týdne je „neděle“.

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.

Podívejte se na buňky B6 a B7. Výsledek jsme dostali jako „Toto je vlastně víkendové datum“, protože data „04. května-2019“ a „6. dubna-2019“ jsou vlastně víkendová data, takže pro víkendová data není třeba zobrazovat víkendové datum. Ve výchozím nastavení dostaneme výsledek takto.

Zajímavé články...