Vba: كيفية تحويل التاريخ إلى رقم الأسبوع
يمكنك استخدام بناء الجملة الأساسي التالي في VBA لتحويل تاريخ إلى رقم أسبوع:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
سيجد هذا المثال تحديدًا رقم الأسبوع لكل تاريخ في النطاق A2:A9 وسيعرض النتائج في النطاق B2:B9 .
لاحظ أن أسلوب VBA WeekNum يفترض أن الأسابيع تبدأ يوم الأحد.
لتحديد يوم آخر كبداية للأسبوع، يمكنك إضافة وسيطة ثانية إلى الأسلوب WeekNum :
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
يوضح المثال التالي كيفية استخدام الأسلوب WeekNum لتحويل التواريخ إلى أرقام الأسابيع عمليًا.
مثال: تحويل التاريخ إلى رقم الأسبوع في VBA
لنفترض أن لدينا عمود التاريخ التالي في Excel:
لنفترض أننا نريد تحويل كل تاريخ إلى رقم أسبوع وعرض رقم الأسبوع في العمود B.
يمكننا إنشاء الماكرو التالي للقيام بذلك:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i))
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يعرض العمود B رقم الأسبوع لكل تاريخ في العمود A، على افتراض أن الأسابيع تبدأ يوم الأحد.
إذا كنت تريد تحديد يوم آخر كبداية للأسبوع، على سبيل المثال الاثنين، فيمكنك استخدام الصيغة التالية:
Sub FindWeekNumber()
Dim i As Integer
For i = 2 To 9
Range(" B " & i) = WorksheetFunction.WeekNum(Range(" A " & i), vbMonday)
Next i
End Sub
عندما نقوم بتشغيل هذا الماكرو، نحصل على الإخراج التالي:
يعرض العمود B الآن رقم الأسبوع لكل تاريخ في العمود B، على افتراض أن الأسابيع تبدأ يوم الاثنين.
ملاحظة : يمكنك العثور على الوثائق الكاملة لأسلوب VBA WeekNum هنا .
مصادر إضافية
تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في VBA:
كيفية مقارنة التواريخ في VBA
كيفية تحويل السلسلة إلى تاريخ في VBA
كيفية حساب الأيام بين تاريخين في VBA