VBA radni dan - Korak po korak Vodič kroz radne dane u VBA

Excel VBA funkcija radnog dana

Dan u tjednu u VBA-u je funkcija datuma i vremena koja se koristi za identificiranje dana u danu određenog datuma pod uvjetom da je to ulazni podatak, a ova funkcija vraća cjelobrojnu vrijednost od 1 do 7 raspona, ovoj funkciji se nudi neobavezni argument prvi dan u tjednu, ali ako ne navedemo prvi dan u tjednu, funkcija prema zadanim postavkama pretpostavlja nedjelju kao prvi dan u tjednu.

Možemo li odrediti broj radnog dana gledajući određeni datum? Da, možemo odrediti broj dana tog tjedna, ovisno o početku dana u tjednu. U redovitim funkcijama radnog lista imamo funkciju koja se naziva Excel u tjednu, a koja određuje broj tjedna za određeni datum. I u VBA imamo istu funkciju za pronalaženje iste stvari.

Što radi funkcija radnog dana?

Funkcija tjedna u tjednu vraća broj dana u danu navedenog datuma u tjednu. Na primjer, ako imate datume 01 st travnja do 07 -og travnja, a ako želite znati dan dan 05 -og travnja, ako prvog dana u tjednu, od ponedjeljka, to je 5 -og dana.

Da bismo to pronašli, imamo istu funkciju kao „Dan u tjednu“ na radnom listu kao i u VBA-u. Ispod je sintaksa funkcije.

Datum: Za koji datum pokušavamo pronaći radni dan. Ovo bi trebao biti pravi datum s ispravnim formatom.

(Prvi dan u tjednu): Da bismo odredili dan u danu navedenog datuma, moramo spomenuti koji je prvi dan u tjednu. Prema zadanim postavkama, VBA početnim danom u tjednu smatra „ponedjeljak“. Osim toga, možemo opskrbiti i naredne dane.

Primjeri

Primjer # 1

Da započnem postupak, dopustite mi da prvo započnem s jednostavnim primjerom. Sada ćemo pokušati pronaći radni dan za datum „10. travnja 2019.“.

Korak 1: Definirajte varijablu kao String

Kodirati:

Sub Weekday_Example1 () Dim k As String End Sub
Korak 2: Promjenjivoj dodijelite vrijednost

Dodijelite vrijednost varijabli "k" primjenom funkcije WEEKDAY.

Kodirati:

Sub Week_Example1 () Dim k As String k = Weekday (End Sub
Korak 3: Unesite datum u funkciju

Datum koji ovdje testiramo je „10. travnja 2019.“, pa navedite datum kao „10. travnja 2019.“.

Kodirati:

Sub Weekday_Example1 () Dim k As String k = Weekday ("10-Apr-2019" End Sub
Korak 4: Prikaži vrijednost varijable u MsgBoxu

Prema zadanim postavkama, prvi dan u tjednu uzima se kao "ponedjeljak", pa zanemarite ovaj dio. Zatvorite nosač. Sljedeći redak prikazuje vrijednost varijable "k" u okviru VBA poruke.

Kodirati:

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

Ok, gotovi smo.

Ako pokrenete kod, dobit ćemo rezultat kao „4”, jer počevši od nedjelju, pod uvjetom datum (10-travanj-2019) pada na 4 th dan u tjednu.

Napomena: Početni dan u mom sustavu je "nedjelja".

Slično tome, ako promijenite dan u tjednu, on se mijenja. Ispod je primjer crte za isto.

Kodirati:

k = Dan u tjednu ("10. travnja 2019., vbMonday) 'Ovo vraća 3 k = Dan u tjednu (" 10. travnja 2019., vbTuesday)' Vraća 2 k = dan u tjednu ("10. travnja 2019., vbSrijeda) 'Ovo vraća 1 k = Dan u tjednu ("10. travnja 2019., vbThursday)" Ovo vraća 7 k = Dan u tjednu ("10. travnja 2019., VbFriday)" Vraća 6 k = dan u tjednu ("10. travnja 2019. ", vbSaturday) 'Ovo vraća 5 k = Dan u tjednu (" 10. travnja 2019., vbSunday) "Ovo vraća 4

Primjer # 2 - Dođite bez obzira je li datum vikendom ili ne

Pretpostavimo da imate datum poput dolje navedenog i želite pronaći datum sljedećeg vikenda, a zatim ćemo pomoću funkcije WEEKDAY doći do rezultata.

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.

Pogledajte stanice B6 i B7. Rezultat smo dobili kao "Ovo je zapravo datum vikenda" jer su datumi "04. svibnja 2019." I "06. travnja 2019." Zapravo datumi vikenda, tako da ne treba prikazivati ​​datum vikenda za datume vikenda. Prema zadanim postavkama rezultat dobivamo kao ovaj.

Zanimljivi članci...