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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *