_xlfn.IFERROR Excel2013删除

Dmi*_*kin 2 excel vba excel-vba

Sub DeleteNames() 
 Dim nName As Name 
  For Each nName In ThisWorkbook.Names 
   If nName.Name Like "_xlfn.*" Then nName.Delete 
  Next nName 
End Sub
Run Code Online (Sandbox Code Playgroud)

不能使用错误1004

Sub ShowNames() 
 Dim nName As Name 
  For Each nName In ThisWorkbook.Names 
   nName.Visible = True 
  Next nName 
End Sub 
Run Code Online (Sandbox Code Playgroud)

不能使用错误运行时错误438"对象不支持此属性或方法

如何删除_xlfn.IFERROR命名范围?

小智 7

我今天遇到了这个问题,当时我复制了一个包含命名范围的工作表,后来我从原始工作表中删除了该工作表.但是,该名称无法使用,因为它仍然使用.RefersTo值"=#NAME?"进行索引.并命名为"_xlfn.IFERROR".遗憾的是,错误的命名范围在名称管理器中不可见,并且也无法使用VBA子例程删除,这给出了错误1004.

我解决这个问题的方法:1.在您选择的模块中定义VBA中的子程序,这将使命名管理器中的错误命名范围可见:

Public Sub makeNameJunkVisible()
Dim n As Name
  For Each n In ThisWorkbook.names
    If n.RefersTo = "=#NAME?" Then
      n.visible = True
    End If
  Next n
end sub
Run Code Online (Sandbox Code Playgroud)
  1. 打开名称管理器,它位于功能区菜单上的"公式"选项卡中现在,命名管理器上应显示错误的命名范围,您应该可以将其删除.