2016-11-04 148 views
2

我正在嘗試編寫For...Next循環以在Workbook中創建一組編號Worksheet。工作表的數量由用戶在儀表板的早期點設置。使用for循環在工作簿中添加新工作表

有人可以指出我正確的方向嗎?這是我的代碼,到目前爲止:

For i = 1 To siteCount 
    'I know the below won't work, and I also tried site_ & i, but no luck 
    Set site_i = Sheets.Add(after:=Sheets(Worksheets.Count)) 
    site_i.Name = "Sheet Name" 
Next i 
+0

你聲明變量'site_i'? – Yannici

+0

我公開宣佈可以使用......在'site_1','site_2',......'site_n'中的最大張數。 – Rivers31334

+0

我想你應該更好地嘗試使用數組而不是動態變量名(這在VBA中不起作用) – Yannici

回答

5

有了一些小的調整,您的代碼將基本工作:

Option Explicit 

Sub AddSheets() 

    Dim siteCount As Integer 
    Dim i As Integer 
    Dim site_i As Worksheet 

    siteCount = 4 

    For i = 1 To siteCount 
     Set site_i = Sheets.Add(after:=Sheets(Worksheets.Count)) 
     site_i.Name = "Sheet_Name_" & CStr(i) 
    Next i 

End Sub 
+0

上面的工作是完美的,除了'site_i'的聲明和賦值是毫無意義的(我意識到你只是從OP的代碼開始工作,但我會建議像'Sheets.Add(After:= Sheets.Add(After:= Sheets(Sheets。 Count))。Name =「Sheet_Name_」&CStr(i)'(然後刪除迭代的第二行 – Jeremy

+1

@Jeremy謝謝,我注意到我自己,但他的邏輯更好,我會將其標記爲已接受。 – Rivers31334