基于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
答
将这个代码中的“大师”表,每次更改的范围(“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
欢迎来到SO!查看['Worksheet_Change'](https://msdn.microsoft.com/en-us/library/office/ff839775.aspx)事件。它将有助于你的两点观点(事实上它们看起来都是一样的)。 –