運行VBA代碼允許我檢測到在表中應用過濾器會創建一個範圍名稱,該名稱不會出現在名稱管理器中(範圍名稱或者僅與表頭或整個表關聯) 。有什麼方法可以知道爲什麼會發生這種情況和/或預防它的方法?這只是一個Excel故障?範圍名稱不在名稱管理器
,導致我試圖運行錯誤的VBA代碼的部分是以下幾點:
For Each Rng In ActiveWorkbook.Names
Set Rng2 = Range(Rng)
If Not Intersect(Rng2, Range(rng1.Offset(1, 0), rng1.End(xlDown)).EntireRow) Is Nothing Then ActiveWorkbook.Names(Rng.Name).Delete
Next Rng
當我調試,我發現我的RNG(這是一個名稱的對象,方式)指向我從未創建的範圍(我知道這是因爲它所在的表單中沒有其他範圍名稱,我從來沒有放入任何範圍名稱) 我使用此vba代碼來驗證此表中是否存在該名稱:
Sub test()
Dim Rng As Name
For Each Rng In Sheets("WindHail Zone 2").Names
'ActiveWorkbook.Names(Rng.Name).Delete
MsgBox Rng
Next Rng
End Sub
我從第一行刪除了註釋塊o f將for循環刪除到第二行。我刪除了該選項卡上的過濾器並重新輸入,只是出現同樣的問題。
謝謝!
那......就不會發生。任何我們可以重現的方式?什麼樣的過濾器?什麼VBA代碼?需要更多信息。 – vacip
請編輯您的帖子以包含更多詳細信息:包括代碼片段,迄今爲止已嘗試過的內容等。 –