使用for循环在工作簿中添加新工作表
问题描述:
我正在尝试编写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
答
有了一些小的调整,您的代码将基本工作:
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
你声明变量'site_i'? – Yannici
我公开宣布可以使用......在'site_1','site_2',......'site_n'中的最大张数。 – Rivers31334
我想你应该更好地尝试使用数组而不是动态变量名(这在VBA中不起作用) – Yannici