Автоматически генерировать и заполнять рабочие листы от Мастера
Я пытаюсь разделить данные из своего основного рабочего листа, но сохранить эти данные в той же книге Excel. Мне нужен новый лист, созданный на основе диапазона ячеек, то есть C2:C19 от мастера (я смог сделать это с помощью следующего кода).
Sub CreateSheetsFromAList()
Dim MyCell As Range, MyRange As Range
Set MyRange = Sheets("Master").Range("C2")
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
Для каждого нового рабочего листа я хотел бы, чтобы заголовки и все данные в соответствующей строке на Мастер вставлялись в новый рабочий лист. т. е. C2 = 10, имя рабочего листа 10 с заголовками A1 - Q1 от мастера и все данные из A2 - Q2. Затем мне потребуется каждый дополнительный рабочий лист, чтобы сделать то же самое на основе детализации C
Я очень новичок в VBA и собираюсь пройти обучение, а пока помогите.
Спасибо,
Павел.
1 ответ
Sub CreateSheetsFromAList()
Dim startsheet As Worksheet
Dim newsheet As Worksheet
Dim MyCell As Range, MyRange As Range
Set startsheet = Sheets("Sheet1")
Set MyRange = startsheet.Range("C2")
Set MyRange = Range(MyRange, MyRange.End(xlDown))
For Each MyCell In MyRange
Set newsheet = Sheets.Add(After:=Sheets(Sheets.Count))
Sheets(Sheets.Count).Name = MyCell.Value
startsheet.Rows(1).Copy newsheet.Range("a1")
MyCell.EntireRow.Copy newsheet.Range("a2")
Next MyCell
End Sub