2016-10-25 35 views
2

我运行了一个宏以活动工作簿,并将其复制片到一个新的工作簿,然后尝试在保存之前删除的命名范围。删除我曾尝试命名区域的所有迭代已经失败,相同的错误:删除命名范围

Delete named ranges error

这里是我试过的代码,这是最常用的推荐代码:我能找到的:

Dim nName As Name 
For Each nName In Application.ActiveWorkbook.Names 
    nName.Delete 
Next 
+0

这段代码对我来说非常合适,不管这个名字的作用域是否为Workbook或Worksheet。此代码中的哪一行会引发错误?这段代码中的任何内容都不应该引起这个错误,是否有更多的代码在别处失败? –

+2

这是超级类似的 - 但没有[这个代码]做的伎俩?它忽略了错误,我想你也可以在你的子文件中做这些错误。此外,[这个答案](http://stackoverflow.com/a/25394013/4650297)提供任何见解?另外,你确定* ActiveWorkbook是你期望的那个? – BruceWayne

+1

我只是复制并将代码粘贴到一个空白子文件中,并从名称管理器中删除所有名称。你有没有试过用F8编码? – Tyeler

回答

3

Too long for a comment; I will delete if this does not resolve the situation.

当您在工作簿中创建定义的名称时,您可能无意中使用了保留字或重复形状或其他对象的名称。以下可能有助于通过其索引识别定义的名称,而不是对象本身。

do while cbool(activeWorkbook.names.count) 
    activeWorkbook.Names(1).Delete 
loop 

我认为,无论是Workbook.Names collection.Count和指数是基于1的。