我为20个单元格 Build 了一个名称范围,这样我就可以输入一个新的项目列表,从1到20不等 . 我想编写一个宏,以便它读取项目数并创建正确数量的选项卡,并在命名范围中列出项目名称后命名选项卡 . 我已经完成了所有这些,除了我无法使countA函数工作 . 命名范围是csCount . 如果我在一个实例中将For循环更改为正确的数字(如果因为我现在有7个项目而放7个),则循环和宏是正确的 . 我想使用countA使它更具动态性 . 非常感谢你的帮助 .
Sub generateDepartments()
Dim tabs As Integer
Dim sName As String
Dim i As Integer
Dim j As Integer
Dim csCount As Variant
tabs = Application.CountA(csCount)
j = 5
i = tabs
For i = 2 To Application.CountA(csCount)
Worksheets("Input").Activate
sName = Cells(j, 3).Value
Worksheets.Add(after:=Worksheets(i)).Name = sName
j = j + 1
Next
End Sub
1 回答
首先,您需要创建一个变量来访问您的命名范围:
Set csCount = ActiveWorkbook.Names("csCount").RefersToRange
或Set csCount = ActiveSheet.Range("csCount")
然后使用
Application.WorksheetFunction.CountA(csCount)
另外,最好定义为Range而不是Variant
Dim csCount As Range