从Master生成并填充工作表

时间:2016-11-04 11:36:46

标签: excel vba excel-vba worksheet auto-populate

我希望从我的主工作表中拆分数据,但将所述数据保留在同一本excel书中。我需要一个基于一系列单元格创建的新工作表,即来自master的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

对于创建的每个新工作表,我希望标题和Master上相关行中的所有数据都粘贴到新工作表上。即C2 = 10,工作表名称10带有标题A1 - 来自Master的Q1和来自A2的所有数据 - Q2然后我需要每个额外的工作表基于C细节做同样的事情

我是VBA的新手,希望接受一些培训,同时请帮助。

谢谢,

保罗。

1 个答案:

答案 0 :(得分: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