根据excel中的列表自动创建工作表

时间:2016-03-03 18:28:33

标签: excel-vba vba excel

我想创建一个新工作表(Slave),其名称在(主)工作表的单元格A5:A50中输入,并在新创建的从工作表中复制(模板)工作表的内容。我有一个程序如下,它与我的要求非常匹配,但1)它没有采取我编辑的新值,并在提供的范围内创建一个新的奴隶,即它不是动态的2)我想每次进入时运行宏指定范围内的值。

帮助将受到高度赞赏

Sub CreateAndNameWorksheets()
Dim c As Range

Application.ScreenUpdating = False
For Each c In Sheets("Master").Range("A5:A50")
    Sheets("Template").Copy After:=Sheets(Sheets.Count)
    With c
        ActiveSheet.Name = .Value
        .Parent.Hyperlinks.Add Anchor:=c, Address:="", SubAddress:= _
            "'" & .Text & "'!A1", TextToDisplay:=.Text
    End With
Next c
Application.ScreenUpdating = True
End Sub

1 个答案:

答案 0 :(得分:0)

将此代码放入" Master"工作表,每次更改范围中的单元格(" A5:A50")时,它将运行所需的代码

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    If (Target.Parent.Name = Range("A1:A50").Parent.Name) Then
        Dim ints As Range
        Set ints = Application.Intersect(Target, Range("A5:A50"))
        If (Not (ints Is Nothing)) Then

            'insert code here

        End If
    End If


End Sub