【问题标题】:Listing named ranges resulting in error #REF列出导致错误 #REF 的命名范围
【发布时间】:2018-06-06 10:21:46
【问题描述】:

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

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

一切正常,除了我得到一些工作表中没有的额外命名范围。

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

代码有什么问题吗?

【问题讨论】:

  • 请问为什么您需要列出范围?
  • 这是我实习作业中的问题之一。

标签: vba excel


【解决方案1】:

功能区 > 公式 > 名称管理器:

您会看到工作簿中声明的任何内容以及声明方式。在您的代码中,您正在循环通过 ActiveWorkbook.Names 并且在您的屏幕截图中,您只显示当前工作表中的名称。

【讨论】:

  • 对不起,我不知道。我从名称管理器中删除了所有#REF 范围,现在它工作得很好。谢谢你的回答。
  • @AmanDevrath - 无需为此感到抱歉:)。欢迎你:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 2016-08-15
相关资源
最近更新 更多