Удаление скрытых определений имен с недопустимыми именами в Excel 2003 - PullRequest
3 голосов
/ 19 августа 2010

Я использую этот макрос:

http://support.microsoft.com/kb/119826

, чтобы попытаться очистить скрытые имена в моем файле Excel. Это работает для большинства скрытых имен, но не для нескольких имен _123Graph. Я не уверен, откуда взялись эти имена, но когда я пытаюсь удалить их, я получаю ошибку автоматизации 1004.

База знаний упоминает, что имена с пробелами могут вызвать ошибку. Есть ли способ удалить их?

Ответы [ 2 ]

2 голосов
/ 25 августа 2010

Excel 2007 и выше решает эту проблему ... но быстрое решение для Excel 2003:

Перейдите в Меню инструментов - Параметры - вкладка Общие - Проверьте стиль ссылки R1C1, затем нажмите "ОК".

Затем вам будет предложено ввести новое имя для каждого из поврежденных имен.

... затем вы можете вернуться и снять флажок R1C1.

2 голосов
/ 19 августа 2010

Я использую превосходную надстройку Name Manager , чтобы управлять именованными диапазонами в моих книгах, включая все эти надоедливые, как пример, который вы приводите, который автоматически создается в Excel при автофильтрации и т. Д.которые обычно не выставляются.

Позволяет фильтровать имена по типу, местоположению, области действия и т. д. и обычно выводит ужасный встроенный диалог на следующую неделю.

Редактировать: Если об установке надстройки не может быть и речи, то добавление следующего кода в стандартный модуль позволит вам пройтись по именам в книге и удалить элементы, вызывающие помехи.

Sub deleteNamedRanges()
    Dim n As Name
    Dim a As Variant

    For Each n In ThisWorkbook.Names

        a = MsgBox("Do you want to delete the following name?:" & vbCrLf & vbCrLf & n.Name & " (" & n.RefersTo & ")", vbYesNo, "Delete ranges")
        If a = vbYes Then
            n.Delete
        End If
    Next n
End Sub

Еслиимен очень много, тогда вы сможете изменить это в соответствии со своими потребностями.

...