-3
我有大約110個命名單元格,我經常使用vba刪除它。我一直在這樣做的方式是簡單地:什麼是刪除大量指定單元格的最有效方法?
NamedCell_1 = ""
NamedCell_2 = ""
NamedCell_3 = ""
等..
是否有這個過程更快的方法?由於特殊原因刪除每個命名單元時,都必須按名稱調用它們,不能引用行/單元格編號。請指教,謝謝!
我有大約110個命名單元格,我經常使用vba刪除它。我一直在這樣做的方式是簡單地:什麼是刪除大量指定單元格的最有效方法?
NamedCell_1 = ""
NamedCell_2 = ""
NamedCell_3 = ""
等..
是否有這個過程更快的方法?由於特殊原因刪除每個命名單元時,都必須按名稱調用它們,不能引用行/單元格編號。請指教,謝謝!
我做了一些谷歌搜索,我想最快的出路有:
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
兩種解決方案然而,與我以前的做法相比,其跳躍性和速度更快
您可以創建另一個已命名的範圍,其中包含所有其他已命名的範圍,並且不會向該範圍指定任何內容 – newguy
如果你只需要刪除名稱(不是它引用的範圍,就像'Thisworkbook.Names(「NamedCell_1」)。Delete'。如果要清除它引用的範圍的內容,請參閱'Thisworkbook.Names(「NamedCell_1」)。RefersToRange.ClearContents' – PatricK
在刪除之前將計算設置爲手動;然後在完成時恢復先前的設置。 –