我有一个带有两个工作表“ Master”和“ Template”的excel工作簿
我要在工作表“主”中填写范围A2:A20
中的单元格后复制“模板”,并用A2:20
值命名一个新工作表。
我想将值从两个单元格的主表复制到新创建的工作表中(从主单元格A2:B2
到新表(名称为A2
)到单元格D1:D2
)。
我想对每个填写的单元格A2:A20
进行此操作,这样它就不会为来自A2:A20
的空白单元格创建新的工作表。
因此,如果我填写了A2
,A4
和A5
,我将得到3个新工作表,例如模板工作表,其名称分别为A2
,{{ 1}}和A4
。在母版的第一个新工作表A5
中,将复制到A2:B2
。在第二个新工作表D1:D2
中,将其复制到A4:B4
,在第三个新工作表中,D1:D2
将被复制到A5:B5
打开excel后,我想完成此操作,一旦完成,就不要重复
这可能吗?
非常感谢您的帮助
D1:D2
答案 0 :(得分:0)
将此代码放在Excel文件的“工作簿”模块中。
Option Explicit
Private Sub Workbook_Open()
With Worksheets("Master")
'check if sheet creation process has happened already
If .Cells(1, .Columns.Count).Value = "" Then
Dim c As Range
Application.ScreenUpdating = False
For Each c In .Range("A2:A20")
Worksheets("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
.Cells(1, .Columns.Count).Value = "created" 'mark cell as created so it skips next time and each time after
End With
End Sub
ThisWorkbook类模块: