首页 文章

命名范围的Excel VBA CountA方法

提问于
浏览
0

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

  • 1

    首先,您需要创建一个变量来访问您的命名范围: Set csCount = ActiveWorkbook.Names("csCount").RefersToRangeSet csCount = ActiveSheet.Range("csCount")

    然后使用 Application.WorksheetFunction.CountA(csCount)

    另外,最好定义为Range而不是Variant Dim csCount As Range

相关问题