每周的命名选项卡(Microsoft Excel)
当您开始一个新的工作簿时,一种常见的情况要求创建一年的工作表,一年中的每个星期一次。换句话说,一个工作簿最终可能包含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
此版本的宏要求您提供开始日期。然后,它将使用该日期开始在工作簿中命名不同的工作表。如果输入的值无法转换为日期,则宏将生成错误。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(12403)适用于Microsoft Excel 2007、2010、2013和2016。您可以在下面的Excel的较旧菜单界面中找到此技巧的版本:`link:/ excel-Naming_Tabs_for_Weeks [几周命名标签]。