天数表(Microsoft Excel)
当您开始一个新的工作簿时,通常在每个月的不同日期后给每个工作表命名。如果您做了很多,您就会知道将每个工作表依次重命名为所需的内容可能很麻烦。
开发了以下宏来在这些情况下提供帮助。它检查工作簿中工作表的名称,如果它们以字母“ 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和稍后):