VBA Linggo | Hakbang sa Hakbang ng Patnubay sa Pag-andar sa Linggo

Excel VBA Weekday Function

Weekday sa VBA ay isang pag-andar ng petsa at oras na ginagamit upang makilala ang araw ng linggo ng isang naibigay na petsa na ibinigay bilang isang input, ang pagpapaandar na ito ay nagbabalik ng isang integer na halaga mula 1 hanggang 7 na saklaw, mayroong isang opsyonal na argument na ibinigay sa pagpapaandar na ito na siyang unang araw ng ang linggo ngunit kung hindi namin ibibigay ang unang araw ng linggo kung gayon ang pagpapaandar ay ipinapalagay ang Linggo bilang unang araw ng linggo bilang default.

Maaari ba nating sabihin ang numero ng araw ng linggo sa pamamagitan ng pagtingin sa isang partikular na petsa? Oo, masasabi natin ang numero ng araw sa linggong iyon depende sa pagsisimula ng araw ng linggo. Sa regular na pag-andar ng worksheet, mayroon kaming pagpapaandar na tinatawag na WEEKDAY sa excel upang sabihin ang bilang ng linggo para sa isang partikular na petsa. Sa VBA din mayroon kaming parehong pag-andar upang makahanap ng parehong bagay.

Ano ang ginagawa ng Weekday Function?

Ibinabalik ng pag-andar sa araw ng linggo ang numero ng araw ng ibinigay na petsa sa isang linggo. Halimbawa, kung mayroon kang mga petsa 01 Abril hanggang 07 Abril at kung nais mong malaman ang araw ng petsa 05 Abril kung ang simula ng linggo ay mula Lunes ito ang ika-5 araw.

Upang hanapin ito mayroon kaming parehong pagpapaandar na "Weekday" sa isang worksheet pati na rin sa VBA. Nasa ibaba ang syntax ng pagpapaandar.

Petsa: Para sa aling petsa sinusubukan naming hanapin ang araw ng linggo. Ito ay dapat na isang tamang petsa na may tamang format.

[Unang Araw ng Linggo]: Upang matukoy ang araw ng trabaho ng ibinigay Petsa kailangan nating banggitin kung ano ang unang araw ng linggo. Bilang default, isinasaalang-alang ng VBA ang "Lunes" bilang simula ng araw ng linggo. Maliban dito, maaari rin nating ibigay ang mga araw sa ibaba.

Mga halimbawa

Maaari mong i-download ang VBA WeekDay Function Excel Template dito - VBA WeekDay Function Excel Template

Halimbawa # 1

Upang simulan ang paglilitis hayaan akong magsimula sa isang simpleng halimbawa muna. Ngayon ay susubukan naming hanapin ang araw ng linggo para sa petsang "10-Abril-2019".

Hakbang 1: Tukuyin ang variable bilang String

Code:

 Sub Weekday_Example1 () Dim k Bilang String End Sub 

Hakbang 2: Magtalaga ng halaga sa variable

Italaga ang halaga sa variable na "k" sa pamamagitan ng paglalapat ng pag-andar ng WEEKDAY.

Code:

 Sub Weekday_Example1 () Dim k Bilang String k = Weekday (End Sub 

Hakbang 3: Ipasok ang Petsa sa Pag-andar

Ang petsa na sinusubukan namin dito ay "10-Abr-2019", kaya ipasa ang petsa bilang "10-Abr-2019".

Code:

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

Hakbang 4: Ipakita ang Halaga ng Variable sa MsgBox

Bilang default, aabutin ang unang araw ng linggo bilang "Lunes", kaya huwag pansinin ang bahaging ito. Isara ang bracket. Sa susunod na linya ipakita ang halaga ng variable na "k" sa kahon ng mensahe ng VBA.

Code:

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

Ok, tapos na tayo.

Kung tatakbo namin ang code makukuha namin ang resulta bilang "4" dahil simula sa Linggo ang ibinigay na petsa (10-Abr-2019) ay mahuhulog sa ika-4 na araw ng linggo.

Tandaan: Ang pagsisimula ng aking system ng araw ng linggo ay "Linggo".

Katulad nito, kung binago mo ang simula ng araw ng linggo ay patuloy itong nag-iiba. Nasa ibaba ang isang halimbawa ng linya para sa pareho.

Code:

k = Weekday ("10-Abr-2019", vbMonday) 'Bumabalik ito 3 k = Weekday ("10-Apr-2019", vbTuesday)' Bumabalik ito 2 k = Weekday ("10-Abr-2019", vbWednesday) 'Bumabalik ito ng 1 k = Linggo ("10-Abr-2019", vbThursday)' Bumabalik ito 7 k = Linggo ("10-Abr-2019", vbFriday) 'Bumabalik ito ng 6 k = Weekday ("10-Abr-2019 ", vbSaturday) 'Bumabalik ito 5 k = Weekday (" 10-Abr-2019 ", vbSunday)' Bumabalik ito 4 

Halimbawa # 2 - Dumating Kung ang Petsa ay sa Linggo o Hindi

Ipagpalagay na mayroon kang isang petsa tulad ng sa ibaba at nais mong hanapin ang susunod na petsa ng katapusan ng linggo pagkatapos ay maaari naming gamitin ang WEEKDAY na pag-andar upang makarating sa mga resulta.

Kailangan naming gumamit ng WEEKDAY na may Kundisyon sa kundisyon at mga loop upang makarating sa resulta. Sinulat ko ang code para sa iyo upang pumunta sa pamamagitan ng linya upang makuha ang lohika.

Code:

 Sub Weekend_Dates () Dim k Bilang Integer Para sa k = 2 hanggang 9 Kung Weekday (Cells (k, 1). Halaga, vbMonday) = 1 Pagkatapos Mga Cell (k, 2). Halaga = Mga Cell (k, 1) + 5 ElseIf Linggo (Cells (k, 1) .Value, vbMonday) = 2 Pagkatapos Cells (k, 2). Value = Cells (k, 1) + 4 ElseIf Weekday (Cells (k, 1). Value, vbMonday) = 3 Pagkatapos Cells (k, 2) .Value = Cells (k, 1) + 3 ElseIf Weekday (Cells (k, 1). Value, vbMonday) = 4 Pagkatapos Cells (k, 2). Value = Cells (k, 1) + 2 ElseIf Weekday (Cells (k, 1). Halaga, vbMonday) = 5 Pagkatapos ng Mga Cell (k, 2). Halaga = Mga Cell (k, 1) + 1 Mga Iba Pang Mga Cell (k, 2). Halaga = "Ito talaga ang katapusan ng linggo Petsa "Tapusin Kung Susunod k End Sub 

Makakarating ito sa mga resulta sa ibaba.

Tingnan ang mga cell B6 & B7 nakuha namin ang resulta bilang "Ito talaga ang petsa ng katapusan ng linggo" dahil ang mga petsa na "04-May-2019" at "06-Abr-2019" ay talagang mga petsa ng katapusan ng linggo, kaya hindi na kailangang ipakita ang petsa ng katapusan ng linggo para sa mga petsa ng katapusan ng linggo. Bilang default, nakukuha namin ang resulta bilang ito.