进行日常轮班工作表副本(Microsoft Excel)
Ryan拥有一个Excel工作表,每天需要将其用于3个班次。他每天为每一班次重复制作此工作表的副本。在Ryan看来,如果他有一个宏可以每月一个月每天复制3次主工作表,将工作表命名为“ February 1 Shift 1”,“ February 1 Shift 2”,||||会很有帮助。 |等等。他找不到宏来做这样的事情,并且想知道是否有人可以提供帮助。
实际上,不需要很长时间就可以将其放在一起作为宏。诀窍是要记住,该宏需要在所需月份的每一天将主工作表复制3次。这也意味着宏需要确定一个月中有多少天。知道这一点后,您可以设置两个嵌套的For … Next循环来处理实际的创建过程。
Sub CopyShiftSheets() Dim iDay As Integer Dim iShift As Integer Dim iNumDays As Integer Dim wMaster As Worksheet Dim sTemp As String iMonth = 2 ' Set to month desired, 1-12 iCurYear = Year(Now()) iNumDays = Day(DateSerial(iCurYear, iMonth + 1, 0)) Set wMaster = Worksheets("Master") 'change to name of master For iDay = 1 To iNumDays For iShift = 1 To 3 sTemp = MonthName(iMonth) & " " & iDay & " Shift " & iShift wMaster.Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = sTemp Next iShift Next iDay End Sub
请注意,期望的月份(在这种情况下为2月)已分配给iMonth变量,而iCurYear则设置为当前年份。然后计算该月和一年中的天数,并将其存储在iNumDays中。
每天和每个班次都要进行两个For … Next循环,复制主工作表并重命名。完成后,您的工作簿将具有正确命名的所有所需工作表。但是,您需要注意,不要在同一个月内两次运行宏。
如果这样做,将产生错误,因为工作簿中将有重复命名的工作表。
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
链接:/ excelribbon-ExcelTipsMacros [点击此处在新的浏览器标签中打开该特殊页面]。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本提示(13730)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。