【发布时间】:2018-07-08 12:18:11
【问题描述】:
我们组织中有大约 100 个部门需要预算。
我有一个包含 11 个工作表的主预算工作簿模板。
- 1st 工作表是 Data 与各种数据
- 2nd-11th 个工作表是每个部门在制定年度预算时将使用的 10 个主要类别
我需要为具有 10 个工作表的每个部门创建一个工作簿。
在 数据 工作表上,Column C 包含所有有预算的部门编号,Column U 包含工作表的名称列表是 10 个主要费用类别(预算类别)。
我需要为每个部门创建每个工作表的副本,并使用帐号和现有工作表名称来命名工作表。
例如:
111100-Category-A
111100-Category-B
111100-Category-C
111100-Category-D
111100-Category-E
111100-Category-F
111100-Category-G
111100-Category-H
111100-Category-I
111100-Category-J
我试图用下面的代码遍历每个帐号和工作表名称。
现在,我得到了一个
编译错误:For Each 只能遍历集合对象或 一个数组。
这是我的代码
Option Explicit
Sub Add_Sheets()
Dim TabList As String, wsName As Range, Acct As Range, extraSheet As Worksheet
With Sheets("Data")
TabList = .Range("U2:U11")
For Each wsName In TabList
Set extraSheet = ThisWorkbook.Worksheets("wsName")
Application.ScreenUpdating = False
Set rng = .Range(.[c2], .Cells(Rows.Count, "C").End(xlUp))
For Each Acct In rng
extraSheet.Copy After:=Sheets(Sheets.Count)
ActiveSheet.Name = Acct & "-" & "TabList"
Next
Next
End With
End Sub
【问题讨论】:
标签: excel collections foreach compiler-errors vba