VBA Weekday | دليل خطوة بخطوة لوظيفة أيام الأسبوع في VBA

وظيفة Excel VBA Weekday

يوم من أيام الأسبوع في VBA هي دالة التاريخ والوقت التي تُستخدم لتحديد أيام الأسبوع لتاريخ معين بشرط أن تكون مُدخلاً ، وتُرجع هذه الدالة قيمة عدد صحيح من النطاق 1 إلى 7 ، وهناك وسيطة اختيارية مقدمة لهذه الوظيفة وهي اليوم الأول من الأسبوع ولكن إذا لم نقدم اليوم الأول من الأسبوع ، فإن الوظيفة تفترض أن الأحد هو اليوم الأول من الأسبوع بشكل افتراضي.

هل يمكننا معرفة رقم أيام الأسبوع بالنظر إلى تاريخ معين؟ نعم ، يمكننا معرفة رقم اليوم في ذلك الأسبوع اعتمادًا على يوم بدء الأسبوع. في وظائف ورقة العمل العادية ، لدينا وظيفة تسمى WEEKDAY في التفوق لمعرفة رقم الأسبوع لتاريخ معين. في VBA أيضًا ، لدينا نفس الوظيفة للعثور على نفس الشيء.

ماذا تفعل وظيفة أيام الأسبوع؟

ترجع الدالة Weekday رقم اليوم للتاريخ المحدد في الأسبوع. على سبيل المثال ، إذا كان لديك تواريخ من 1 أبريل إلى 7 أبريل وإذا كنت تريد معرفة يوم التاريخ 5 أبريل إذا كان يوم بداية الأسبوع من يوم الاثنين فهو اليوم الخامس.

للعثور على هذا ، لدينا نفس الوظيفة "Weekday" في ورقة عمل وكذلك في VBA. يوجد أدناه بناء جملة الوظيفة.

التاريخ: لأي تاريخ نحاول العثور على يوم الأسبوع. يجب أن يكون هذا تاريخًا مناسبًا بالتنسيق الصحيح.

[اليوم الأول من الأسبوع]: من أجل تحديد أيام الأسبوع من قدم التاريخ علينا أن نذكر ما هو اليوم الأول من الأسبوع. بشكل افتراضي ، يعتبر VBA "الاثنين" هو يوم بداية الأسبوع. بصرف النظر عن هذا ، يمكننا تزويد الأيام التالية أيضًا.

أمثلة

يمكنك تنزيل قالب Excel الخاص بوظيفة VBA WeekDay هنا - قالب Excel الخاص بوظيفة VBA WeekDay

مثال 1

لبدء الإجراءات ، اسمحوا لي أن أبدأ بمثال بسيط أولاً. سنحاول الآن تحديد يوم الأسبوع لتاريخ "10-أبريل -2019".

الخطوة 1: تحديد المتغير كسلسلة

رمز:

 Sub Weekday_Example1 () خافت k كـ String End Sub 

الخطوة 2: قم بتعيين قيمة للمتغير

قم بتعيين القيمة إلى المتغير "k" من خلال تطبيق وظيفة WEEKDAY.

رمز:

 Sub Weekday_Example1 () خافت k كسلسلة k = يوم من أيام الأسبوع 

الخطوة 3: أدخل التاريخ في الوظيفة

تاريخ الاختبار هنا هو "10-أبريل -2019" ، لذا مرر التاريخ كـ "10-أبريل -2019".

رمز:

 فرعي Weekday_Example1 () خافت k كسلسلة k = يوم من أيام الأسبوع ("10-Apr-2019" End Sub 

الخطوة 4: إظهار قيمة المتغير في MsgBox

بشكل افتراضي ، يستغرق اليوم الأول من الأسبوع "الاثنين" ، لذا تجاهل هذا الجزء. أغلق القوس. في السطر التالي ، اعرض قيمة المتغير "k" في مربع رسالة VBA.

رمز:

 فرعي Weekday_Example1 () خافت k كسلسلة k = يوم من أيام الأسبوع ("10-Apr-2019") MsgBox k End Sub 

حسنًا ، انتهينا.

إذا قمنا بتشغيل الكود ، فسنحصل على النتيجة "4" لأنه بدءًا من يوم الأحد ، يوافق التاريخ المقدم (10-أبريل -2019) في اليوم الرابع من الأسبوع.

ملاحظة: يوم بدء نظامي من الأسبوع هو "الأحد".

وبالمثل ، إذا قمت بتغيير يوم بدء الأسبوع ، فسيظل متغيرًا. يوجد أدناه مثال على السطر لنفسه.

رمز:

k = Weekday ("10-Apr-2019"، vbMonday) 'هذا يعيد 3 k = Weekday ("10-Apr-2019"، vbTuesday)' هذا يعيد 2 k = Weekday ("10-Apr-2019"، vbWednesday) 'هذا يعيد 1 كيلو = يوم الأسبوع ("10-أبريل -2019" ، vbThursday)' هذا يعيد 7 كيلو = يوم الأسبوع ("10-أبريل -2019" ، vbFriday) 'هذا يعيد 6 كيلو = يوم الأسبوع ("10-أبريل -2019 "، vbSaturday) 'هذا يعيد 5 k = Weekday (" 10-Apr-2019 "، vbSunday)" هذا يعيد 4 

مثال # 2 - الوصول سواء كان التاريخ في عطلة نهاية الأسبوع أم لا

لنفترض أن لديك تاريخًا مثل أدناه وتريد العثور على تاريخ نهاية الأسبوع التالي ، فيمكننا استخدام وظيفة WEEKDAY للوصول إلى النتائج.

نحتاج إلى استخدام WEEKDAY مع شرط IF وحلقاته للوصول إلى النتيجة. لقد كتبت الكود لك لتذهب سطراً سطراً للحصول على المنطق.

رمز:

 Sub Weekend_Dates () Dim k as Integer for k = 2 To 9 If Weekday (Cells (k، 1) .Value، vbMonday) = 1 ثم الخلايا (k، 2) .Value = Cells (k، 1) + 5 ElseIf Weekday (الخلايا (ك ، 1). القيمة ، vbMonday) = 2 ثم الخلايا (ك ، 2). القيمة = الخلايا (ك ، 1) + 4 آخر يوم من أيام الأسبوع (الخلايا (ك ، 1). القيمة ، vbMonday) = 3 ثم الخلايا (ك ، 2). القيمة = الخلايا (ك ، 1) + 3 آخر يوم من أيام الأسبوع (الخلايا (ك ، 1). القيمة ، vbMonday) = 4 ثم الخلايا (ك ، 2) ، القيمة = الخلايا (ك ، 1) + 2 ElseIf Weekday (Cells (k، 1) .Value، vbMonday) = 5 ثم الخلايا (k، 2) .Value = Cells (k، 1) + 1 Else Cells (k، 2) .Value = "هذا في الواقع هو عطلة نهاية الأسبوع التاريخ "End If Next k End Sub 

سيصل هذا إلى النتائج أدناه.

انظر إلى الخلايا B6 و B7 التي حصلنا عليها على النتيجة "هذا هو تاريخ نهاية الأسبوع في الواقع" لأن التواريخ "04-May-2019" و "06-Apr-2019" هي في الواقع تواريخ عطلة نهاية الأسبوع ، لذلك لا داعي لإظهار تاريخ عطلة نهاية الأسبوع لتواريخ نهاية الأسبوع. بشكل افتراضي ، نحصل على النتيجة على هذا النحو.


$config[zx-auto] not found$config[zx-overlay] not found