Jak korzystać z networkdays w vba (z przykładem)
Możesz użyć metody NetworkDays w VBA, aby znaleźć liczbę pełnych dni roboczych pomiędzy określonymi datami początkowymi i końcowymi.
Należy pamiętać, że dni robocze nie obejmują weekendów i świąt.
Oto powszechny sposób wykorzystania tej metody w praktyce:
Sub CalculateNetworkDays()
Dim i As Integer
For i = 2 To 9
Range("C" & i) = WorksheetFunction.NetworkDays(Range("A" & i), Range("B" & i))
Next i
End Sub
W tym konkretnym przykładzie obliczana jest liczba dni roboczych między datami początkowymi w zakresie A2:A9 i datami końcowymi w zakresie B2:B9 i wyświetla wyniki w zakresie C2:C9 .
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: Jak korzystać z NetworkDays w VBA
Załóżmy, że mamy w Excelu następującą listę dat rozpoczęcia i zakończenia:
Załóżmy, że chcemy użyć metody NetworkDays w języku VBA do obliczenia liczby pełnych dni roboczych między datą początkową i końcową każdego wiersza.
W tym celu możemy utworzyć następujące makro:
Sub CalculateNetworkDays()
Dim i As Integer
For i = 2 To 9
Range("C" & i) = WorksheetFunction.NetworkDays(Range("A" & i), Range("B" & i))
Next i
End Sub
Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:
Kolumna C pokazuje liczbę pełnych dni roboczych pomiędzy datą początkową i końcową w każdym wierszu.
Na przykład:
- Liczba dni roboczych pomiędzy 1.02.2023 a 1.3.2023 wynosi 2 . (ponieważ te dwa terminy przypadają w weekendy).
- Liczba dni roboczych w okresie od 1.05.2023 do 1.8.2023 wynosi 2 .
- Liczba dni roboczych w okresie od 01.10.2023 do 20.01.2023 wynosi 9 .
I tak dalej.
Uwaga : Pełną dokumentację metody NetworkDays w VBA 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 używać IsDate do sprawdzania, czy komórka jest datą
VBA: Jak używać mm/dd/rrrr jako formatu daty