2014-10-04 63 views
2

非常感谢您帮助解决这个小问题。使用新名称复制工作表

我想用我想要的名称多次复制一个excel工作表。我能够通过让我问这个名字应该是什么 - 但是有没有办法通过编写这20个左右的选项卡名称来实现。

这里是我迄今为止 -

Dim name As String 
Dim x As Integer 
x = ActiveWorkbook.Worksheets.Count 

name = Application.InputBox("Put down the name", "Add worksheet") 
If name = "" Then Exit Sub 
Worksheets(1).Copy after:=Worksheets(x) 
ActiveSheet.Name = name 

请让我知道这是什么,将成为可能。非常感谢您的帮助。

谢谢。

+0

那么你想如何指定名称?你可以简单地给它一个这样的名字:ActiveSheet.Name =“我的新工作表”,但你已经知道是的? – 2014-10-04 01:52:05

+0

这是我真正的问题。我有一个我想参考的名单,但不知道如何去做。 – user8223 2014-10-04 01:53:07

+0

因此,您可以将列表放在工作表上并将它们放在那里。或者你可以把列表放在一个文本文件中并从那里获取。或者你可以直接在代码中输入列表并从那里执行。您想做什么?我认为将它们放在工作表中会是最简单的。 – 2014-10-04 01:55:36

回答

0

你需要做一个循环。

Dim ws As Worksheet 
Set ws = Worksheets("WorksheetWithNames") 
Dim y As Integer 

For y = 1 To 10 ' < enter the number of sheets you want. 
    'copy the sheet 

    'rename the sheet 
    'assuming you have names in column A 
    ActiveSheet.Name = ws.Cells(y, 1) 

Next 
+0

如果此答案可以帮助您,请点击复选标记以接受答案。如果你愿意,你也可以upvote。 – 2014-10-04 02:17:35

+0

非常感谢兄弟。绝对有帮助。 – user8223 2014-10-04 02:45:47

0

还有就是你可以插入一个模块with link provided here

它的要点是要做到以下几点:

Click Insert > Module, and paste the following code in the Module Window. 

    Sub Copier() 
    Dim x As Integer 
    x = InputBox("Enter number of times to copy Sheet1") 
    For numtimes = 1 To x 
    ActiveWorkbook.Sheets("Sheet1").Copy _ 
    After:=ActiveWorkbook.Sheets("Sheet1") 
    Next 
    End Sub 
相关问题