هنگامی که یک ورک بوک جدید را شروع می کنید، بسیار معمول است که هر کاربرگ را بر اساس یک روز متفاوت از ماه نامگذاری کنید. اگر این کار را کمی انجام دهید، می دانید که تغییر نام هر برگه، به صورت جداگانه، دقیقاً به آنچه نیاز دارید، می تواند خسته کننده باشد.
ماکرو زیر برای کمک به این شرایط ایجاد شده است. نام کاربرگ ها را در ورک بوک شما بررسی می کند و اگر با حروف "ورق" شروع می شوند، نام آنها را به روزهای ماه تغییر می دهد. اگر برگه های کافی در ورک بوک وجود نداشته باشد، در صورت لزوم برای هر روز از ماه، برگه ها را اضافه می کند.
Sub DoDays()
Dim J As Integer
Dim K As Integer
Dim sDay As String
Dim sTemp As String
Dim iTarget As Integer
Dim dBasis As Date
iTarget = 13
While (iTarget < 1) Or (iTarget > 12)
iTarget = Val(InputBox("Numeric month?"))
If iTarget = 0 Then Exit Sub
Wend
Application.ScreenUpdating = False
sTemp = Str(iTarget) & "/1/" & Year(Now())
dBasis = CDate(sTemp)
For J = 1 To 31
sDay = Format((dBasis + J - 1), "dddd mm-dd-yyyy")
If Month(dBasis + J - 1) = iTarget Then
If J <= Sheets.Count Then
If Left(Sheets(J).Name, 5) = "Sheet" Then
Sheets(J).Name = sDay
Else
Sheets.Add.Move after:=Sheets(Sheets.Count)
ActiveSheet.Name = sDay
End If
Else
Sheets.Add.Move after:=Sheets(Sheets.Count)
ActiveSheet.Name = sDay
End If
End If
Next J
For J = 1 To (Sheets.Count - 1)
For K = J + 1 To Sheets.Count
If Right(Sheets(J).Name, 10) > _
Right(Sheets(K).Name, 10) Then
Sheets(K).Move Before:=Sheets(J)
End If
Next K
Next J
Sheets(1).Activate
Application.ScreenUpdating = True
End Sub
توجه داشته باشید که ماکرو فرض می کند که ماهی که کاربرگ می خواهید در سال جاری است. اگر اینطور نیست، باید یک تغییر کوچک ایجاد کنید. به خط زیر نزدیک ابتدای ماکرو توجه کنید:
sTemp = Str(iTarget) & "/1/" & Year(Now())
بیایید بگوییم که شما واقعاً به دلایلی می خواهید ماه در سال 2015 باشد. فقط خط را به شکل زیر تغییر دهید:
sTemp = Str(iTarget) & "/1/2015"
ماکرو نام هر برگه را برابر با روز هفته و به دنبال آن تاریخ واقعی تنظیم می کند، مانند «چهارشنبه 2020-03-28». اگر می خواهید نحوه نام گذاری برگه ها برای هر روز را تغییر دهید، فقط نحوه ساخت متغیر sDay را در ماکرو تغییر دهید.
آخرین مرحله در ماکرو این است که کاربرگ ها را به ترتیب مناسب بر اساس روزهای ماه قرار می دهد. نتیجه این است که اگر هر کاربرگ دیگری در ورک بوک باقی مانده باشد (به عبارت دیگر، شما تعدادی داشتید که با حروف "Sheet" شروع نمی شد، سپس آن کاربرگ ها در پایان ورک بوک، پس از برگه های هر کدام به پایان می رسند. روز