هنگامی که یک ورک بوک جدید را شروع می کنید، یک سناریوی رایج ایجاد یک کاربرگ به ارزش یک سال، یکی برای هر هفته از سال را می طلبد. به عبارت دیگر، بسته به چند هفته در یک سال خاص، یک ورک بوک می تواند حاوی 52 یا 53 کاربرگ باشد.
اگر نیاز به ایجاد چنین ورک بوک دارید، می دانید که ایجاد و نام گذاری جداگانه همه کاربرگ ها می تواند یک دردسر واقعی باشد. اینجاست که یک ماکرو به کار می آید. ماکرو زیر تعداد مناسب کاربرگ ها را اضافه می کند و سپس نام همه کاربرگ ها را مطابق با شماره هفته (01 تا 52) تغییر می دهد.
Sub YearWorkbook1()
Dim iWeek As Integer
Dim sht As Variant
Application.ScreenUpdating = False
Worksheets.Add After:=Worksheets(Worksheets.Count), _
Count:=(52 - Worksheets.Count)
iWeek = 1
For Each sht In Worksheets
sht.Name = "Week " & Format(iWeek, "00")
iWeek = iWeek + 1
Next sht
Application.ScreenUpdating = True
End Sub
اگر در عوض به راهی برای ایجاد کاربرگ هایی نیاز دارید که تاریخ پایان هر هفته را برای یک سال نشان می دهد، پس به یک ماکرو متفاوت نیاز دارید.
Sub YearWorkbook2()
Dim iWeek As Integer
Dim sht As Variant
Dim sTemp As String
Dim dSDate As Date
sTemp = InputBox("Date for the first worksheet:", "End of Week?")
dSDate = CDate(sTemp)
Application.ScreenUpdating = False
Worksheets.Add After:=Worksheets(Worksheets.Count), _
Count:=(52 - Worksheets.Count)
For Each sht In Worksheets
sht.Name = Format(dSDate, "dd-mmm-yyyy")
dSDate = dSDate + 7
Next sht
Application.ScreenUpdating = True
End Sub
این نسخه از ماکرو از شما تاریخ شروع می خواهد. سپس از آن تاریخ برای شروع نام گذاری کاربرگ های مختلف در ورک بوک استفاده می کند. اگر مقداری را وارد کنید که قابل ترجمه به تاریخ نباشد، ماکرو خطا ایجاد می کند.