2016-11-04 153 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