Fellow VBA Волшебников,Macro Копирование одного листа на несколько листов с динамическим диапазоном
Используя следующий код, я был в состоянии генерировать несколько листов с названиями вкладок, равных динамический диапазон:
Sub SheetMacro()
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("Control_Sheet").Range("F7")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
Next MyCell
End Sub
Я пытаюсь скопировать исходный шаблон w/formula (сводка EAC) во все недавно созданные листы. Добавление этого кода дублирует Резюме EAC, но не называют вкладки в пределах динамического диапазона:
Sub SheetMacro()
Dim MyCell As Range, MyRange As Range
Dim ws1 As Worksheet
Set MyRange = Sheets("Control_Sheet").Range("F7")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Sheets.Add After:=Sheets(Sheets.Count) 'creates a new worksheet
Sheets(Sheets.Count).Name = MyCell.Value ' renames the new worksheet
Set ws1 = ThisWorkbook.Worksheets("EAC Summary")
ws1.Copy ThisWorkbook.Sheets(Sheets.Count)
Next MyCell
End Sub
Существует ли оптимальный способ совместить код таким образом, чтобы повторить шаблон источника, и назовите вкладки в соответствии с входами в динамическом диапазоне?
Заранее спасибо.
Вы пытаетесь скопировать 'EAC Summary', а затем переименовать его? Если это так, вы должны сделать шаг переименования после шага «Копировать». Если это не цель, пожалуйста, уточните свой вопрос. –
Спасибо. Этот код заменяет имя Summary Tab EAC с первой ячейки в диапазоне, но ошибки кода, потому что вкладка EAC переименовывается: Sub SheetMacro2() Dim MyCell As Range, MyRange Как Range Dim WS1 как рабочий лист Установите MyRange = Sheets ("Control_Sheet"). Range ("F7") Set MyRange = Range (MyRange, MyRange.End (xlDown)) Для каждого MyCell В MyRange Set WS1 = ThisWorkbook.Worksheets ("EAC Резюме ") ws1.Copy ThisWorkbook.Sheets (Sheets.Count) Листы (таблицы.) .Name = MyCell.Value 'переименовывает новый лист Next My Cell End Sub –
Есть ли у вас какие-либо мысли о том, как предотвратить перекодирование кода на исходное имя вкладки EAC Template? –