我为20个单元格建立了一个名称范围,这样我就可以输入一个新的项目列表,从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
答案 0 :(得分:1)
首先,您需要创建一个变量来访问您的命名范围:SELECT DATE_FORMAT(STR_TO_DATE(targetColumn, '%W, %M %d, %Y'),'%m/%d/%Y') FROM tableName;
或Set csCount = ActiveWorkbook.Names("csCount").RefersToRange
然后使用Set csCount = ActiveSheet.Range("csCount")
此外,最好定义为Range而不是Variant Application.WorksheetFunction.CountA(csCount)