2016-11-04 6 views
0

Я ищу для разделения данных с моего рабочего листа, но сохраняю указанные данные в одной книге Excel. Мне нужен новый рабочий лист, созданный на основе диапазона ячеек, то есть C2: C19 от master (я смог сделать это, используя следующий код).Автоматическое создание и заполнение рабочих листов от мастера

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 

Для каждого нового рабочего листа, который создается Я хотел бы заголовки и все данные в пределах соответствующей строки на Master наклеенной на новый лист. т.е. C2 = 10, имя рабочего листа 10 с заголовками A1 - Q1 от Master и все данные от A2 - Q2. Затем мне нужно, чтобы каждый дополнительный рабочий лист делал то же самое на основе детали C

Я очень новичок в VBA и буду желая пройти определенную подготовку, тем временем, пожалуйста, помогите.

Thanks,

Paul.

+0

Считаете ли вы, что вы копируете листок мастера вместо добавления новых листов? Таким образом, данные уже будут там? – SJR

ответ

0
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