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 Weekday vrací číslo dne zadaného data v týdnu. Například pokud máte data od 1. dubna do 7. dubna a chcete znát den dne 5. dubna, pokud je počátečním dnem v týdnu od pondělí, je to 5. den.

Abychom to našli, máme stejnou funkci „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 uvést, 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

Tuto šablonu Excel funkce VBA WeekDay Excel si můžete stáhnout zde - Šablona Excel funkce VBA WeekDay

Příklad č. 1

Pro zahájení řízení mi dovolte začít nejprve 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 považuje za „pondělí“, takže tuto část ignorujte. Zavřete držák. Na dalším řádku zobrazte hodnotu proměnné „k“ ve zprávě VBA.

Kód:

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

Dobře, jsme hotovi.

Pokud spustíme kód, dostaneme výsledek jako „4“, protože od neděle zadané datum (10. dubna 2019) připadne na 4. den v týdnu.

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

Podobně, pokud změníte počáteční den v týdnu, stále se to mění. Níže je ukázkový řádek pro totéž.

Kód:

k = Den v týdnu ("10. dubna 2019", vbMonday) 'Vrátí 3 k = Den v týdnu ("10. dubna 2019", vbTuesday)' Vrátí 2 k = Den v týdnu ("10. dubna 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) 'Vrátí 5 k = Den v týdnu (" 10. dubna 2019 ", vbSunday)' Vrátí 4 

Příklad č. 2 - Dorazí, zda je datum o víkendu nebo ne

Předpokládejme, že máte datum, jako je níže, a chcete najít datum příštího víkendu, pak můžeme k dosažení výsledků použít funkci WEEKDAY.

K dosažení výsledku musíme použít WEEKDAY s podmínkou IF a smyčkami. Napsal jsem kód, abyste mohli logiku získat řádek po řádku.

Kód:

 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 (Buňky (k, 1) .Value, vbMonday) = 2 Pak Buňky (k, 2). Hodnota = Buňky (k, 1) + 4 ElseIf Weekday (Buňky (k, 1) .Value, vbMonday) = 3 Pak Buňky (k, 2) .Value = Buňky (k, 1) + 3 ElseIf Weekday (Buňky (k, 1) .Value, vbMonday) = 4 Pak Buňky (k, 2) .Hodnota = Buňky (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 Datum "Konec, pokud další k Konec Sub 

Tím dojde k níže uvedeným výsledkům.

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 „06-duben-2019“ jsou vlastně víkendová data, takže není třeba ukazovat víkendové datum pro víkendová data. Ve výchozím nastavení dostaneme výsledek takto.