2016-01-29 74 views
-3

我有大約110個命名單元格,我經常使用vba刪除它。我一直在這樣做的方式是簡單地:什麼是刪除大量指定單元格的最有效方法?

NamedCell_1 = "" 

NamedCell_2 = "" 

NamedCell_3 = "" 

等..

是否有這個過程更快的方法?由於特殊原因刪除每個命名單元時,都必須按名稱調用它們,不能引用行/單元格編號。請指教,謝謝!

+0

您可以創建另一個已命名的範圍,其中包含所有其他已命名的範圍,並且不會向該範圍指定任何內容 – newguy

+0

如果你只需要刪除名稱(不是它引用的範圍,就像'Thisworkbook.Names(「NamedCell_1」)。Delete'。如果要清除它引用的範圍的內容,請參閱'Thisworkbook.Names(「NamedCell_1」)。RefersToRange.ClearContents' – PatricK

+0

在刪除之前將計算設置爲手動;然後在完成時恢復先前的設置。 –

回答

2

我做了一些谷歌搜索,我想最快的出路有:

On Error Resume Next 

    For Each nm In ActiveWorkbook.Names 
     Range(nm).value = "" 
    Next nm 

但後來我嘗試四周,這是大約50%的速度:

On Error Resume Next 

    For Each nm In ActiveWorkbook.Names 
     Range(nm).ClearContents 
    Next nm 

兩種解決方案然而,與我以前的做法相比,其跳躍性和速度更快

相關問題