列出命名范围导致错误#REF

时间:2018-06-06 10:21:46

标签: excel vba excel-vba

enter image description here

这些是4个范围(演示范围)。如您所见,所选范围被命名为numbers2。类似地,a5:a9是数字1,b2:b3是字母表1和d2:d3是字母表2。我在同一工作簿中的另一个工作表中显示命名范围。 这是代码:

Sub namedRanges()
Dim nm As Name, n As Long, y As Range, z As Worksheet
Application.ScreenUpdating = False

Dim sheet_name As String: sheet_name = InputBox("Provide the name of the worksheet where to list all the named ranges")
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(ActiveSheet.Name).Name = sheet_name

Set z = ActiveSheet
n = 2
With z
    .[a1:xfd104856].ClearContents
    .[a1:b1] = [{"Name","Refers to"}]
    For Each nm In ActiveWorkbook.Names
        .Cells(n, 1).End(xlUp)(2) = nm.Name
        .Cells(n, 2).End(xlUp)(2) = "'" & nm.RefersTo
        n = n + 1
    Next nm
End With
Application.ScreenUpdating = True
End Sub

一切都运行正常,除了我得到一些额外的命名范围,而这些范围并不在工作表中。

enter image description here

请参阅创建的新工作表。并且创建了两列。但我应该得到4个命名范围,而不是我得到更多。

代码中有什么问题吗?

1 个答案:

答案 0 :(得分:2)

功能区>配方>姓名经理:

enter image description here

您将看到在工作簿中声明的任何内容以及如何声明它。在您的代码中,您循环浏览ActiveWorkbook.Names,在屏幕截图中,您只显示当前工作表中的名称。