基于Excel中的列表自动创建工作表

问题描述:

我想创建一个新的工作表(从属),其名称与(主)工作表中的单元格A5:A50中所输入的名称一样,并将(模板)工作表的内容复制到新创建的奴隶工作表。我有一个如下所示的程序,与我的要求非常吻合,但1)它没有采用新的值,我编辑并创建了一个新的从属范围,即它不是动态的,并且2)我想在每次进入时运行宏指定范围内的值。基于Excel中的列表自动创建工作表

帮助将高度赞赏

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 
+0

欢迎来到SO!查看['Worksheet_Change'](https://msdn.microsoft.com/en-us/library/office/ff839775.aspx)事件。它将有助于你的两点观点(事实上它们看起来都是一样的)。 –

将这个代码中的“大师”表,每次更改的范围(“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