2014-03-24 94 views
1

在執行過程之前,我需要清除一個範圍內的所有命名單元格的名稱。VBA清除單元格名稱的範圍

我嘗試沒有成功,到目前爲止下面的代碼:

Sub EraseCellNames() 

Worksheets("SheetA").Range("A1:G5").Select 
Dim nName As Name 
    For Each nName In Names 
     If Not Intersect(Selection, Range(nName.Name)) Is Nothing Then 
      nName.Delete 
     End If 
    Next nName 

End Sub 

任何想法?

在此先感謝!

enter image description here

回答

3

試試這個:

Sub EraseCellNames() 
    Dim nName As Name 
    Dim targetRng As Range 

    Set targetRng = Worksheets("SheetA").Range("A1:G5") 

    For Each nName In ThisWorkbook.Names 
     If nName.ValidWorkbookParameter Then 
      If targetRng.Parent.Name = nName.RefersToRange.Parent.Name Then 
       If Not Intersect(targetRng, nName.RefersToRange) Is Nothing Then nName.Delete 
      End If 
     End If 
    Next nName 
End Sub 
+0

有沒有語法錯誤,但小區名字仍然在執行過程後,他們沒有被刪除一樣...... – user3276971

+0

您能不能告訴你工作簿?我測試過這段代碼,它對我很好用 –

+0

我說「清除一個範圍內所有命名單元格的名稱」的含義與在「公式」選項卡中打開「名稱管理器」相同,選擇一個定義的名稱並刪除它,但是對於特定的範圍(A1:表格A中的G5)。 – user3276971