Автоматически генерировать и заполнять рабочие листы от Мастера

Я пытаюсь разделить данные из своего основного рабочего листа, но сохранить эти данные в той же книге 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
Другие вопросы по тегам