VBA Weekday - Ghid pas cu pas pentru funcționarea săptămânii în VBA

Funcția Excel VBA Weekday

Ziua săptămânii în VBA este o funcție de dată și oră care este utilizată pentru a identifica ziua săptămânii unei date date, cu condiția ca aceasta să fie o intrare, această funcție returnează o valoare întreagă de la 1 la 7 interval, există un argument opțional furnizat acestei funcții care este prima zi a săptămânii, dar dacă nu furnizăm prima zi a săptămânii, atunci funcția își asumă duminica ca prima zi a săptămânii în mod implicit.

Putem spune numărul săptămânii uitându-ne la o anumită dată? Da, putem spune numărul zilei în acea săptămână, în funcție de ziua de începere a săptămânii. În funcțiile obișnuite ale foii de lucru, avem o funcție numită WEEKDAY în excel pentru a indica numărul săptămânii pentru o anumită dată. Și în VBA avem aceeași funcție pentru a găsi același lucru.

Ce face funcția Weekday?

Funcția zilei săptămânii returnează numărul zilei datei furnizate în săptămână. De exemplu, dacă aveți date 01 st aprilie la 07 mii aprilie și , dacă doriți să știți ziua de la data 05 - lea aprilie în cazul în care ziua de începere a săptămânii este de luni, este 5 - lea zi.

Pentru a găsi acest lucru, avem aceeași funcție ca „Ziua săptămânii” într-o foaie de lucru, precum și în VBA. Mai jos este sintaxa funcției.

Data: pentru care dată încercăm să găsim ziua săptămânii. Aceasta ar trebui să fie o dată adecvată cu formatul corect.

(Prima zi a săptămânii): pentru a determina ziua săptămânii a datei furnizate , trebuie să menționăm care este prima zi a săptămânii. În mod implicit, VBA consideră „luni” ca zi de începere a săptămânii. În afară de aceasta, putem furniza și zilele de mai jos.

Exemple

Exemplul nr. 1

Pentru a începe procedura, permiteți-mi să încep cu un exemplu simplu. Acum vom încerca să găsim ziua săptămânii pentru data „10-aprilie-2019”.

Pasul 1: definiți variabila ca Șir

Cod:

Sub Weekday_Example1 () Dim k As String End Sub
Pasul 2: Atribuiți valoare variabilei

Atribuiți valoarea variabilei „k” aplicând funcția WEEKDAY.

Cod:

Sub Weekday_Example1 () Dim k As String k = Weekday (End Sub
Pasul 3: Introduceți data în funcție

Data pe care o testăm aici este „10-apr-2019”, deci treceți data ca „10-apr-2019”.

Cod:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-apr-2019" End Sub
Pasul 4: Afișați valoarea variabilei în MsgBox

În mod implicit, prima zi a săptămânii este „luni”, deci ignorați această parte. Închideți parantezul. Următoarea linie arată valoarea variabilei „k” în caseta de mesaje VBA.

Cod:

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

Ok, am terminat.

Dacă rulăm codul, vom obține rezultatul ca „4” deoarece începând de duminică, data furnizată (10-apr-2019) cade în a 4- a zi a săptămânii.

Notă: ziua de începere a săptămânii a sistemului meu este „duminică”.

În mod similar, dacă schimbați ziua de început a săptămânii, aceasta variază în continuare. Mai jos este un exemplu de linie pentru același lucru.

Cod:

k = Weekday („10-apr-2019”, vbMonday) 'Aceasta returnează 3 k = Weekday („10-apr-2019", vbTuesday)' Aceasta returnează 2 k = Weekday („10-apr-2019", vbMiercuri) 'Aceasta returnează 1 k = Ziua săptămânii ("10-apr-2019", vbJoi)' Aceasta returnează 7 k = Ziua săptămânii ("10-apr-2019", vbVineri) 'Aceasta returnează 6 k = Ziua săptămânii ("10-apr-2019 ", sâmbătă vb) 'Aceasta returnează 5 k = Ziua săptămânii („ 10-apr-2019 ", vbSunday)' Aceasta returnează 4

Exemplul # 2 - Sosiți dacă Data este în weekend sau nu

Să presupunem că aveți o întâlnire precum cea de mai jos și doriți să găsiți următoarea dată de weekend, atunci putem folosi funcția WEEKDAY pentru a ajunge la rezultate.

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.

Uită-te la celulele B6 și B7. Am obținut rezultatul ca „Aceasta este de fapt data de weekend”, deoarece datele „04-mai-2019” și „06-apr-2019” sunt de fapt date de weekend, deci nu este nevoie să afișăm data de weekend pentru datele de weekend. În mod implicit, obținem rezultatul astfel.

Articole interesante...