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 WeekDayPří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.