_xlfn.IFERROR Excel2013删除

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

不适用于错误1004

 Sub ShowNames() Dim nName As Name For Each nName In ThisWorkbook.Names nName.Visible = True Next nName End Sub 

不能与错误运行时错误438“对象不支持此属性或方法

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

当我复制一个包含命名范围的工作表时,我今天遇到了这个问题,之后我从原始工作表中删除了这个工作表。 然而,这个名字不能被使用,因为它仍然通过excel与.RefersTo值“=#NAME?”进行索引。 并命名为“_xlfn.IFERROR”。 令人遗憾的是,错误的命名范围在名称pipe理器中是不可见的,并且也不能使用VBA子例程删除,该子例程给出错误1004。

我解决这个问题的方法是:1.在你select的模块的VBA中定义一个子程序,这将在名称pipe理器中显示错误的命名范围:

 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 
  1. 在“function区”菜单上的“公式”选项卡中find的“打开名称pipe理器”名称pipe理器中现在应该显示错误的命名范围,您应该可以将其删除。