كيفية استخدام networkdays في vba (مع مثال)
يمكنك استخدام أسلوب NetworkDays في VBA للعثور على عدد أيام العمل بأكملها بين تاريخي البدء والانتهاء المحددين.
لاحظ أن أيام العمل لا تشمل عطلات نهاية الأسبوع والأعياد.
فيما يلي طريقة شائعة لاستخدام هذه الطريقة عمليًا:
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
يقوم هذا المثال المحدد بحساب عدد أيام العمل بين تواريخ البدء في النطاق A2:A9 وتواريخ الانتهاء في النطاق B2:B9 ويعرض النتائج في النطاق C2:C9 .
يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.
مثال: كيفية استخدام NetworkDays في VBA
لنفترض أن لدينا القائمة التالية لتواريخ البدء والانتهاء في Excel:
لنفترض أننا نريد استخدام أسلوب NetworkDays في VBA لحساب عدد أيام العمل الكاملة بين تاريخي البدء والانتهاء لكل صف.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
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
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يعرض العمود C عدد أيام العمل الكاملة بين تاريخي البدء والانتهاء في كل صف.
على سبيل المثال:
- عدد أيام العمل بين 1/2/2023 و 1/3/2023 هو 2 . (نظرًا لأن هذين التاريخين يقعان في عطلات نهاية الأسبوع).
- عدد أيام العمل بين 1/5/2023 و 1/8/2023 هو 2 .
- عدد أيام العمل بين 10/01/2023 و 20/01/2023 هو 9 أيام عمل .
وما إلى ذلك وهلم جرا.
ملاحظة : يمكنك العثور على الوثائق الكاملة لأسلوب NetworkDays في VBA هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
VBA: كيفية الحصول على اسم الشهر من التاريخ
VBA: كيفية استخدام IsDate للتحقق مما إذا كانت الخلية عبارة عن تاريخ
VBA: كيفية استخدام mm/dd/yyyy كتنسيق للتاريخ