VBA savaitės diena - Žingsnis po žingsnio savaitės funkcijoms VBA

„Excel VBA“ savaitės funkcija

Savaitės diena VBA yra datos ir laiko funkcija, naudojama nustatytos datos savaitės dienai nustatyti, jei ji yra įvestis. Ši funkcija grąžina sveiko skaičiaus reikšmę nuo 1 iki 7, šiai funkcijai yra pasirinktinis argumentas, kuris yra pirmąją savaitės dieną, tačiau jei nenurodome pirmosios savaitės dienos, funkcija pagal nutylėjimą laiko sekmadienį kaip pirmąją savaitės dieną.

Ar galime pasakyti savaitės dienos numerį žiūrėdami į konkrečią datą? Taip, mes galime pasakyti tos dienos dienos skaičių, atsižvelgiant į savaitės pradžios dieną. Įprastose darbalapio funkcijose mes turime funkciją, vadinamą WEEKDAY excel, kad galėtume nurodyti savaitės skaičių tam tikrai datai. VBA taip pat turime tą pačią funkciją rasti tą patį.

Ką veikia savaitės funkcija?

Savaitės dienos funkcija grąžina nurodytą dienos dienos numerį savaitėje. Pavyzdžiui, jei turite datas 01 g balandžio 07 -osios balandžio ir jei jūs norite žinoti tos dienos 05 dieną osios balandžio jeigu pradedant savaitės diena yra nuo pirmadienio, tai 5 -oji diena.

Norėdami tai rasti, mes turime tą pačią funkciją kaip „Savaitės diena“ darbalapyje, taip pat VBA. Žemiau pateikiama funkcijos sintaksė.

Data: Kuriai datai bandome rasti savaitės dieną. Tai turėtų būti tinkama data su tinkamu formatu.

(Pirmoji savaitės diena): norėdami nustatyti nurodytos datos savaitės dieną , turime paminėti, kokia yra pirmoji savaitės diena. Pagal numatytuosius nustatymus VBA laiko „pirmadienį“ savaitės pradžios diena. Be to, mes galime pateikti ir toliau nurodytas dienas.

Pavyzdžiai

1 pavyzdys

Norėdami pradėti procesą, leiskite man pradėti nuo paprasto pavyzdžio. Dabar pabandysime rasti savaitės dieną datai „2019 m. Balandžio 10 d.“.

1 veiksmas: apibrėžkite kintamąjį kaip eilutę

Kodas:

Savaitės dienos_pavyzdys1 () Dim k As String End Sub
2 žingsnis: priskirkite kintamajam vertę

Priskirkite reikšmę kintamajam „k“ pritaikydami WEEKDAY funkciją.

Kodas:

Savaitės dienos_pavyzdys1 () Dim k As String k = Savaitės diena (End Sub
3 žingsnis: Funkcijoje įveskite datą

Data, kurią čia bandome, yra „2019 m. Balandžio 10 d.“, Todėl praleiskite datą kaip „2019 m. Balandžio 10 d.“.

Kodas:

Savaitės dienos_pavyzdys1 () Dim k As eilutė k = Savaitės diena („2019 m. Balandžio 10 d.“ Pabaigos dalis
4 žingsnis: Rodyti kintamojo vertę „MsgBox“

Pagal numatytuosius nustatymus pirmoji savaitės diena laikoma „pirmadieniu“, todėl nepaisykite šios dalies. Uždarykite laikiklį. Kitoje eilutėje rodoma kintamojo „k“ vertė VBA pranešimų laukelyje.

Kodas:

Savaitės dienos_pavyzdys1 () Dim k As eilutė k = Savaitės diena („2019 m. Balandžio 10 d.“) „MsgBox“ k Pabaiga

Gerai, mes baigėme.

Jei paleidsime kodą, rezultatas bus „4“, nes nuo sekmadienio nurodyta data (2019 m. Balandžio 10 d.) Patenka į 4 -ąją savaitės dieną.

Pastaba: Mano sistemos pradinė savaitės diena yra „sekmadienis“.

Panašiai, jei keičiate savaitės pradžios dieną, ji vis skiriasi. Žemiau yra to paties pavyzdžio eilutė.

Kodas:

k = savaitės diena ("2019 m. balandžio 10 d.", vb pirmadienis) 'Tai grąžina 3 k = savaitės diena ("2019 m. balandžio 10 d.", vbTuesday) "Tai grąžina 2 k = savaitės diena (" 2019 m. balandžio 10 d. ", vbWednesday) 'Tai grąžina 1 k = savaitės diena ("2019 m. Balandžio 10 d.", VbThursday) "Tai grąžina 7 k = savaitės dieną (" 2019 m. Balandžio 10 d. ", VbFriday)". Tai grąžina 6 k = savaitės diena ("2019 m. Balandžio 10 d." ", vbSaturday) 'Tai grąžina 5 k = savaitės diena (" 2019 m. balandžio 10 d. ", vbSunday)" Tai pateikia 4

2 pavyzdys - atvykite, ar data savaitgalį, ar ne

Tarkime, kad turite datą, kaip nurodyta toliau, ir norite rasti kitą savaitgalio datą, tada mes galime naudoti SAVAITĖS DIENĄ, kad gautume rezultatus.

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.

Pažvelkite į langelius B6 ir B7. Rezultatą gavome kaip „Tai iš tikrųjų yra savaitgalio data“, nes „2019 m. Gegužės 4 d.“ Ir „2019 m. Balandžio 6 d.“ Datos yra savaitgalio datos, todėl nereikia rodyti savaitgalio datos savaitgalio datoms. Pagal numatytuosius nustatymus mes gauname tokį rezultatą.

Įdomios straipsniai...