Создание копий рабочего листа для ежедневных смен (Microsoft Excel)
У Райана есть рабочий лист Excel, который ему нужно использовать каждый день для каждой из трех смен. Он делает копию этого рабочего листа для каждой смены, каждый день, снова и снова. Райану кажется, что было бы полезно, если бы у него был макрос, который мог бы копировать основной рабочий лист 3 раза каждый день в месяц, называя рабочие листы «1 февраля, смена 1», «1 февраля, смена 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
Обратите внимание, что желаемый месяц (в данном случае февраль) назначается переменной iMonth, а iCurYear установлен на текущий год. Затем рассчитывается количество дней в этом месяце и году и сохраняется в iNumDays.
Два цикла For … Next проходят каждый день и каждую смену, копируя основной рабочий лист и переименовывая его. Когда вы закончите, ваша рабочая тетрадь будет иметь все нужные рабочие листы с правильными названиями. Однако следует соблюдать осторожность и не запускать макрос дважды в течение одного месяца.
Если вы это сделаете, будет сгенерирована ошибка, потому что у вас будут рабочие листы с повторяющимися именами в книге.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (13730) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.