命名范围的Excel VBA CountA方法

时间:2015-09-11 17:32:33

标签: vba function excel-vba count excel

我为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

1 个答案:

答案 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)