Jak korzystać z funkcji workday w vba (z przykładem)
Możesz użyć metody WorkDay w VBA, aby dodać lub odjąć określoną liczbę dni roboczych od daty.
Oto powszechny sposób wykorzystania tej metody w praktyce:
SubAddWorkDays ()
Dim i As Integer
For i = 2 To 10
Range("C" & i) = WorksheetFunction.WorkDay(Range("A" & i), Range("B" & i))
Next i
End Sub
To konkretne makro dodaje liczbę dni roboczych określoną w zakresie B2:B10 do każdej daty z zakresu A2:A10 i wyświetla wyniki w zakresie C2:C10 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Jak wykorzystać funkcję WorkDay w VBA
Załóżmy, że mamy kolumnę dat w programie Excel oraz inną kolumnę określającą liczbę dni roboczych do dodania do każdej daty:
Możemy utworzyć następujące makro, aby dodać liczbę dni roboczych w kolumnie B do każdej odpowiedniej daty w kolumnie A:
SubAddWorkDays ()
Dim i As Integer
For i = 2 To 10
Range("C" & i) = WorksheetFunction.WorkDay(Range("A" & i), Range("B" & i))
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Domyślnie w kolumnie C daty są wyświetlane jako numery kolejne.
Aby wyświetlić te wartości jako rozpoznawalne daty, zaznacz zakres C2:C10 , następnie kliknij kartę Wstaw na górnej wstążce, następnie kliknij menu rozwijane Format liczb i kliknij opcję Krótka data :
Każdy numer seryjny będzie teraz wyświetlany jako data:
Kolumna C wyświetla każdą datę w kolumnie A z dodaną określoną liczbą dni roboczych w kolumnie B.
Należy pamiętać, że jeśli w kolumnie B podamy liczbę ujemną, metoda WorkDay odejmie tę liczbę dni roboczych od daty w kolumnie A.
Uwaga : Pełną dokumentację metody VBA WorkDay znajdziesz tutaj .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak uzyskać nazwę miesiąca z daty
VBA: Jak sortować według daty
VBA: Jak dodać if pomiędzy dwiema datami