VBA darba diena - Soli pa solim darba dienu funkcija VBA

Excel VBA nedēļas dienas funkcija

Nedēļas diena VBA ir datuma un laika funkcija, ko izmanto, lai identificētu noteiktā datuma nedēļas dienu, ja tā tiek ievadīta, šī funkcija atgriež veselu skaitļu vērtību no 1 līdz 7, šai funkcijai ir norādīts izvēles arguments, kas ir nedēļas pirmā diena, bet, ja mēs nenorādām nedēļas pirmo dienu, funkcija pēc noklusējuma pieņem svētdienu kā pirmo nedēļas dienu.

Vai mēs varam pateikt nedēļas dienas numuru, aplūkojot konkrētu datumu? Jā, mēs varam pateikt šīs dienas dienas numuru atkarībā no nedēļas sākuma dienas. Parastajās darblapu funkcijās mums ir funkcija, ko Excel sauc WEEKDAY, lai norādītu nedēļas numuru konkrētam datumam. Arī VBA mums ir viena un tā pati funkcija, lai atrastu to pašu.

Ko dara nedēļas dienas funkcija?

Nedēļas dienas funkcija atgriež norādīto datuma dienas numuru nedēļā. Piemēram, ja jums ir datumi 01 st aprīļa līdz 07 th aprīlim, un, ja jūs vēlaties zināt dienu datumu 05 th aprīlī, ja sākuma nedēļas dienu no pirmdienas, tas ir, 5 th dienā.

Lai to atrastu, mums ir tāda pati funkcija kā “Weekday” darblapā, kā arī VBA. Zemāk ir funkcijas sintakse.

Datums: kurā datumā mēs cenšamies atrast nedēļas dienu. Tam jābūt pareizam datumam ar pareizu formātu.

(Nedēļas pirmā diena): Lai noteiktu norādītā datuma nedēļas dienu , mums jāpiemin, kas ir nedēļas pirmā diena. Pēc noklusējuma VBA uzskata “pirmdienu” par nedēļas sākuma dienu. Bez tam mēs varam piegādāt arī tālāk norādītās dienas.

Piemēri

1. piemērs

Lai sāktu procesu, ļaujiet man vispirms sākt ar vienkāršu piemēru. Tagad mēs centīsimies atrast nedēļas dienu datumam “10.-aprīlis-2019”.

1. darbība: definējiet mainīgo kā virkni

Kods:

Apakšnedēļas diena_piemērs1 () Dim k kā virknes beigu apakšgrupa
2. darbība: piešķiriet mainīgajam vērtību

Piešķiriet vērtību mainīgajam “k”, izmantojot WEEKDAY funkciju.

Kods:

Apakšnedēļas diena_piemērs1 () Aptumšot k kā virkni
3. darbība. Funkcijā ievadiet datumu

Datums, kuru šeit pārbaudām, ir “10-Apr-2019”, tāpēc norādiet datumu “10-Apr-2019”.

Kods:

Sub Weekday_Example1 () Dim k As String k = Weekday ("2019. gada 10. aprīlis" beigu apakšdaļa
4. darbība. Parādiet mainīgā vērtību MsgBox

Pēc noklusējuma nedēļas pirmā diena tiek uzskatīta par “pirmdienu”, tāpēc ignorējiet šo daļu. Aizveriet kronšteinu. Nākamajā rindā tiek parādīta mainīgā “k” vērtība VBA ziņojumu lodziņā.

Kods:

Sub Weekday_Example1 () Dim k As String k = Nedēļas diena ("10-Apr-2019") MsgBox k End Sub

Labi, mēs esam galā.

Ja mēs palaist kodu, mēs iegūtu rezultātu kā "4", jo, sākot no svētdienas, sniegtā datums (10-Apr-2019), attiecas uz 4 th nedēļas dienu.

Piezīme. Manas sistēmas nedēļas sākuma diena ir “svētdiena”.

Līdzīgi, ja maināt nedēļas sākuma dienu, tā mainās. Zemāk ir piemērs tam pašam.

Kods:

k = nedēļas diena ("10-Apr-2019", vbMonday) 'Tas atgriež 3 k = Weekday ("10-Apr-2019", vbTuesday)' Tas atgriež 2 k = Weekday ("10-Apr-2019", vbWednesday) 'Tas atgriež 1 k = nedēļas diena ("10-Apr-2019", vbThursday). Tas atgriež 7 k = Weekday ("10-Apr-2019", vbFriday). Tas atgriež 6 k = Weekday ("10-Apr-2019 ", vbSaturday) 'Tas atgriež 5 k = Weekday (" 10-Apr-2019 ", vbSunday)' Tas atgriež 4

2. piemērs - ierašanās neatkarīgi no tā, vai datums ir nedēļas nogale vai nē

Pieņemsim, ka jums ir šāds datums, kā norādīts zemāk, un jūs vēlaties atrast nākamo nedēļas nogales datumu, tad mēs varam izmantot WEEKDAY funkciju, lai sasniegtu rezultātus.

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.

Apskatiet šūnas B6 un B7. Rezultāts tika iegūts kā “Šis faktiski ir nedēļas nogales datums”, jo datumi “2019. gada 4. maijs” un “2019. gada 6. aprīlis” faktiski ir nedēļas nogales datumi, tāpēc nedēļas nogales datums nav jāparāda nedēļas nogales datumiem. Pēc noklusējuma mēs iegūstam rezultātu kā šo.

Interesanti raksti...