أيام الأسبوع في Excel VBA
أدناه سننظر في برنامج في Excel VBA يحسب عدد أيام الأسبوع بين تاريخين.
أيام الأسبوع هي: الاثنين والثلاثاء والأربعاء والخميس والجمعة.
موقف:
ملاحظة: التواريخ في تنسيق الولايات المتحدة. الأشهر الأولى ، الأيام الثانية. يعتمد هذا النوع من التنسيقات على الإعدادات الإقليمية لنوافذك.
1. أولا ، نعلن خمسة متغيرات. date1 من type تاريخ ، date2 من type تاريخ ، dateToCheck من النوع Date ، أيام BETAIN من النوع Integer ، أيام الأسبوع من النوع Integer و i من النوع Integer.
Dim daysBetween As Integer, weekdays As Integer, i As Integer
2. نقوم بتهيئة أربعة متغيرات. نحن نستخدم الدالة DateDiff لتهيئة المتغير daysBETween. هذه الوظيفة لها ثلاث حجج. نملأ "د" للحجة الأولى لأننا نريد عدد الأيام بين التاريخ 1 والتاريخ 2.
date1 = Range("B2")
date2 = Range("B3")
daysBetween = DateDiff("d", date1, date2)
3. نحتاج إلى التحقق من كل تاريخ بين التاريخ 1 والتاريخ 2 (بما في ذلك التاريخ 1 والتاريخ 2) ما إذا كان التاريخ هو يوم من أيام الأسبوع أم لا. إذا كانت الإجابة نعم ، فنحن نزيد أيام الأسبوع من خلال 1. سنستخدم حلقة For Next.
4. نستخدم الدالة DateAdd للحصول على كل تاريخ نحتاج إلى التحقق منه. هذه الوظيفة لها ثلاث حجج. نقوم بملء "د" للوسيطة الأولى لأننا نريد إضافة أيام ، i للوسيطة الثانية ، و date1 للحجة الثالثة حيث نريد إضافة i أيام إلى date1. بهذه الطريقة يمكن لـ Excel VBA التحقق من كل تاريخ بين التاريخ 1 والتاريخ 2 بدءًا من date1. أضف سطر التعليمة البرمجية التالية:
مثال: بالنسبة إلى i = 3 ، يقوم Excel VBA بالتحقق من date1 + 3 أيام.
5. بعد ذلك ، نستخدم الدالة Weekday (البناء في الوظيفة) للتحقق مما إذا كان dateToCheck يومًا من أيام الأسبوع أم لا. تُرجع الدالة Weekday 1 لـ الأحد و 7 لـ السبت. لذلك ، نزيد فقط المتغير أيام الأسبوع إذا كان Weekday (dateToCheck) لا يساوي 1 ولا يساوي 7 (<> يعني لا يساوي). الأسطر التعليمات البرمجية التالية الحصول على المهمة.
weekdays = weekdays + 1
End If
6. لا تنس أن تغلق الحلقة.
7. وأخيرًا ، نعرض عدد أيام الأسبوع باستخدام MsgBox. نستخدم عامل التشغيل لربط سلسلتين (ضم). على الرغم من أن أيام الأسبوع ليست سلسلة تعمل هنا.
8. ضع الماكرو الخاص بك في زر أمر واختبره.
نتيجة: