我正在清理一个臃肿的 Excel 工作簿,并尝试批量删除引用某人“C”盘上的工作簿的命名范围。它们有很多。而且它们没有在这个工作簿中使用。
'C:\blahblah\...\...\...\...\...\[工作簿名称.xls]Sheet1'!$E$28
下面的代码帮助我删除名称包含“图标”的命名范围(例如)。
但是,当范围包含如上所示的路径时,我确实需要删除该范围。请记住,工作簿或工作表名称也可能会更改,但驱动力保持不变。
Sub deleteNamedRangesSpecific()
For Each NR In ActiveWorkbook.Names
If NR.NameLocal Like "*" & "icon" & "*" Then NR.delete
Next
End Sub
有什么想法如何根据范围本身而不是范围名称进行删除?
谢谢。
麦克风。
答案1
您只需将NR.RefersTo
变体传递给字符串类型变量即可使用该Like
函数。
此代码对我有用。显然需要进行修改$E$28
以适应。
Option Explicit
Sub deleteNamedRangesSpecific()
Dim NR As Name
Dim compare_string As String
For Each NR In ActiveWorkbook.Names
compare_string = NR.RefersTo
If compare_string Like "*" & "$E$28" & "*" Then NR.Delete
Next
End Sub