كيفية البحث عن اليوم الأخير من الشهر باستخدام vba (مع مثال)
يمكنك استخدام الدالة DateSerial() في VBA بقيمة 0 لوسيطة اليوم للعثور على اليوم الأخير من الشهر لتاريخ في خلية معينة.
على سبيل المثال، يمكنك استخدام الصيغة التالية للعثور على اليوم الأخير من الشهر للتاريخ الموجود في الخلية A1 وإرجاع هذا التاريخ في الخلية B1 :
dateVal = DateValue(Range(" A1 "))
Range(" B1 ").Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
على سبيل المثال، إذا كانت الخلية A1 تحتوي على 5/1/2023 ، فسترجع الخلية B1 31/1/2023 .
يوضح المثال التالي كيفية استخدام هذه الوظيفة عمليًا.
مثال: استخدام VBA للعثور على اليوم الأخير من الشهر
لنفترض أن لدينا مجموعة البيانات التالية في Excel والتي تحتوي على معلومات حول المبيعات التي تمت في تواريخ مختلفة في الشركة:
لنفترض أننا نريد العثور على اليوم الأخير من الشهر لكل تاريخ في العمود A وإرجاع التاريخ في الخلية المقابلة في العمود C.
يمكننا استخدام بناء الجملة التالي للقيام بذلك:
SubFirstDayOfMonth ()
Dim i As Integer
For i = 2 To 11
dateVal = DateValue(Range(" A " & i))
Range(" C " & i).Value = DateSerial(Year(dateVal), Month(dateVal)+1, 0)
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يمثل كل تاريخ من التواريخ الموجودة في العمود C اليوم الأخير من الشهر للتاريخ المقابل في العمود A.
ملاحظة رقم 1: في الكود، استخدمنا For i = 2 إلى 11 نظرًا لأن الخلايا من A2 إلى A11 تحتوي على التواريخ التي كنا مهتمين بها. لا تتردد في تغيير هذا النطاق اعتمادًا على نطاق الخلايا التي تريد استخدامها.
ملاحظة رقم 2 : يمكنك العثور على الوثائق الكاملة لوظيفة DateSerial() في VBA هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى باستخدام VBA:
كيفية الفرز حسب التاريخ في VBA
كيفية إضافة إذا كان بين تاريخين في VBA
كيفية حساب أكبر من التاريخ في VBA