当您开始一个新的工作簿时,通常在每个月的不同日期后给每个工作表命名。如果您做了很多,您就会知道将每个工作表依次重命名为所需的内容可能很麻烦。

开发了以下宏来在这些情况下提供帮助。它检查工作簿中工作表的名称,如果它们以字母“ Sheet”开头,则将它们重命名为每月的某几天。如果工作簿中没有足够的工作表,则它会根据需要在每月的每一天添加工作表。

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

宏将每个选项卡名称设置为等于星期几,然后等于实际日期,如“星期三2012年3月28日”。如果要更改每天命名选项卡的方式,只需更改宏中sDay变量的构造方式。

宏的最后一步是根据月中的天数将工作表按适当的顺序放置。结果是,如果您在工作簿中还有其他工作表(换句话说,您有一些不是以字母“ Sheet”开头的工作表,则这些工作表将在工作簿末尾,在每个工作表之后

| 注:

|如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)上描述的宏,我已经

| _ExcelTips_是您的

|此技巧(2836)适用于Microsoft Excel 97、2000、2002和2003。您可以在Excel的功能区界面中找到此技巧的版本(Excel 2007和稍后):