1

Я очищаю раздутую книгу 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 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .