2016-10-25 219 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的。