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

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

Sub DoMonths()

Dim J As Integer     Dim K As Integer

For J = 1 To 12         If J <= Sheets.Count Then             If Left(Sheets(J).Name, 5) = "Sheet" Then                 Sheets(J).Name = MonthName(J)

Else                 Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = MonthName(J)

End If         Else             Sheets.Add.Move after:=Sheets(Sheets.Count)

ActiveSheet.Name = MonthName(J)

End If     Next J

For J = 1 To 12         If Sheets(J).Name <> MonthName(J) Then             For K = J + 1 To Sheets.Count                 If Sheets(K).Name = MonthName(J) Then                     Sheets(K).Move Before:=Sheets(J)

End If             Next K         End If     Next J

Sheets(1).Activate End Sub

宏的最后一步是,在第1到第12个月中,按正确的顺序放置了工作表。结果是,如果工作簿中还有其他工作表(换句话说,您有一些工作表并非以

|注意,该宏利用VBA内置的MonthName函数,并返回12个月后的工作表的末尾。传递给它的月份的全名(由数字(1到12)表示)(如果尝试使用超出该范围的数字,则会返回错误。)

| _注意: _

|如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)上描述的宏,我准备了一个特殊页面,其中包含有用的信息。链接:/ excelribbon-ExcelTipsMacros [单击此处在新的浏览器选项卡中打开该特殊页面]。

| _ExcelTips_是您的具有成本效益的Microsoft Excel培训的资源。

本技巧(11148)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本:

链接:/ excel-Sheets_for_Months [Sheets for Months]。