2014-10-04 73 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 
相關問題