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.