Может ли VBA удалить именованные диапазоны на основе значения RefersTo?
Я очищаю раздутую книгу Excel и пытаюсь массово удалить именованные диапазоны, которые ссылаются на книги на чьем-то диске "C". Их очень много. И они не используются в этой книге.
'C: \ blahblah \... \... \... \... \... \ [WorkBookName.xls] Лист1'!$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