【问题标题】:excel 2013 vba range names count not workingexcel 2013 vba范围名称计数不起作用
【发布时间】:2016-10-14 17:12:51
【问题描述】:

我使用的是 Excel 2013,无法获取计数或范围名称列表。我可以打开名称管理器对话框并列出名称和范围。我使用 VBA (Set rngTable = c.CurrentRegion.ListObjects.Add) 将名称(List1、List2 和 List3)添加到工作簿中。我可以通过使用“List”和 intCounter 来遍历命名范围以获取与每个列表关联的范围。但我无法获得姓名的数量,也无法获得姓名列表。

我在 Excel 2013 和 2007 中尝试了以下代码,当执行到 For i = 1 To namedRanges.Count 行时,它返回零 (0)。如何获取工作簿中命名范围的数量并列出命名范围的名称?非常感谢您的帮助!

Private Sub Something()

Dim namedRanges As Names
Set namedRanges = ActiveSheet.Names

Dim targetSheet As Worksheet
Set targetSheet = Sheet3
targetSheet.Cells.Clear

Dim i As Integer
For i = 1 To namedRanges.Count
    targetSheet.Cells(i, 2).Value = namedRanges(i).Name
    targetSheet.Cells(i, 3).Value = namedRanges(i).RefersToRange.Address
Next

结束子

【问题讨论】:

    标签: excel excel-2013 named-ranges vba


    【解决方案1】:

    您的命名范围是工作表还是工作簿?如果它们不限于单个工作表,则需要引用 workbook.Names 集合。

    Set namedRanges = ActiveWorkbook.Names
    

    【讨论】:

    • 我解决了这个问题。当我将名称添加到工作簿时,它们被添加为列表对象。我修改了代码以选择当前区域并为该范围区域添加名称。现在可以使用上述编码计算并列出命名范围。当名称是列表对象时无法完成。感谢您的回复 Werrf!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多