Макрос для удаления скрытых имен в excel

Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Еще…Меньше

Инспектор документов обнаружил в книге скрытые имена. Под этими именами может храниться скрытая информация о сценариях надстройки «Поиск решения». Например, если вы используете надстройку «Поиск решения» для выполнения сценария, в ней может храниться информация о параметрах расчета и других конфиденциальных данных, например скрытые имена в книге.

Важно: Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации без гарантии, выраженной или подразумеваемой. Это относится и не только к подразумеваемой гарантии пригодности и пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который демонстрируется, и средствами, используемыми для создания и от debug procedures. Специалисты службы поддержки Майкрософт могут объяснить функциональные возможности конкретной процедуры, но не будут изменять эти примеры, чтобы предоставить дополнительные функции или процедуры по построению с учетом ваших конкретных требований.

Проблема

Инспектор документов не может удалить эти имена.

Рекомендуемое решение

Чтобы удалить скрытые имена, запустите следующий макрос: В макросе отображается окно сообщения с тремя элементами: (1), видимым или скрытым, (2) определенным и (3) ссылкой на это имя (ссылка на ячейку книги). Чтобы удалить или сохранить каждое определенное имя, выберите вариант Да или Нет.

Примечание: После удаления скрытых имен с помощью этого макроса надстройки (например, «Поиск решения») и макросы могут работать неправильно, и связанные с ними скрытые данные могут быть потеряны. Этот макрос действует на все имена, которые определяются как скрытые, а не только на те, которые были добавлены надстройкой «Поиск решения».

Внимание: Если имена листов содержат пробелы, при попытке удалить определенное имя может появиться сообщение об ошибке.

Удаление скрытых имен

' Module to remove all hidden names on active workbook
   Sub Remove_Hidden_Names()

       ' Dimension variables.
       Dim xName As Variant
       Dim Result As Variant
       Dim Vis As Variant

       ' Loop once for each name in the workbook.
       For Each xName In ActiveWorkbook.Names

           'If a name is not visible (it is hidden)...
           If xName.Visible = True Then
               Vis = "Visible"
           Else
               Vis = "Hidden"
           End If

           ' ...ask whether or not to delete the name.
           Result = MsgBox(prompt:="Delete " & Vis & " Name " & _
               Chr(10) & xName.Name & "?" & Chr(10) & _
               "Which refers to: " & Chr(10) & xName.RefersTo, _
               Buttons:=vbYesNo)

           ' If the result is true, then delete the name.
           If Result = vbYes Then xName.Delete

           ' Loop to the next name.
       Next xName

   End Sub

Нужна дополнительная помощь?

Здравствуйте. Рад представить Вам пошаговую инструкцию по удалению скрытых имен в Экселе. Вы возможно сталкивались с ситуацией, когда при копировании листа в книге Excel возникала ошибка, которая сообщает что Имя уже существует и нужно либо выбрать новое, либо использовать тоже. Хорошо если таких ошибок 2 — 3, а если их несколько сотен или тысяч, тогда никакого терпения не хватит нажимать ОК. Используя рекомендации, представленные ниже, Вы избавитесь от ошибки навсегда! Итак, приступим:

1. Создание макроса DeleteHiddenNames.

Встроенной функции в Excel для решения этой проблемы я не нашел, зато есть замечательный макрос, с помощью которого мы от нее избавимся. Сначало надо зайти в редактор макросов, для этого запустите Excel, откройте файл с проблемой и нажмите ALT+F11. Откроется Microsoft Visual Basic for Applications, далее заходим в меню Insert и выбираем Module.

Как удалить скрытые имена в Excel

Открывается окно модуля. Туда Вы должны вставить следующий код макроса:

Sub DeleteHiddenNames()
Dim n As Name
Dim Count As Integer
On Error Resume Next
For Each n In ActiveWorkbook.Names
    If Not n.Visible Then
    n.Delete
    Count = Count + 1
    End If
Next n
MsgBox «Скрытые имена в количестве » & Count & » удалены»
End Sub

Выглядеть это должно в результате следующим образом:

Как удалить скрытые имена в Excel

Отлично. Макрос мы создали, теперь нам осталось его применить.

2. Использования макроса для удаления скрытых имен в Excel.

Переключаемся назад на нашу Эксель книгу, переходим в меню Вид, там выбираем блок Макросы и в нем нажимаем на меню Макросы.

Как удалить скрытые имена в Excel

 В открывшемся меню выбираем макрос DeleteHiddenNames и нажимаем кнопку выполнить.

Как удалить скрытые имена в Excel

Макрос отработает некоторое время (чем больше скрытых имен у Вас в файле, тем дольше он будет работать) и выдаст сообщение о том, сколько имен было удалено. Поздравляю Вы избавились от проблемы и можете смело копировать листы.

Как удалить скрытые имена в Excel

Я надеюсь что эта инструкция Вам помогла, заходите на сайт почаще — здесь много еще чего полезного для Эксель найдете. Есть вопросы — смело пишите их в комментариях к статье.

На работе мне приходится заполнять эксель-файл с индивидуальными целевыми показателями (используется для расчета премии). Шаблоны файлов поступили из центрального офиса. Ежемесячно я копирую последнюю вкладку и заполняю актуальной информацией. 

Всё бы ничего, но каждый раз при копировании выскакивает окно с уведомлением о том, что копируемые формулы содержат какие-то имена. И таких имён порядка 30 на странице. То есть, каждый раз копируя вкладку мне надо 30 раз нажать кнопку «Да».

Когда это случилось первый раз я просмотрел все ячейки, никаких имён не нашёл и… махнул на это рукой. Месяц спустя, когда снова копировал вкладку — выругался, 30 раз подтвердил и снова забыл на месяц. В общем, так прошло больше года. Однако, даже моё терпение заканчивается…

Вчера, в очередной раз столкнувшись с необходимостью нажимать кнопку «Да», залез в Гугл с запросом «удалить имена в эксель». Нашёл замечательную страничку, где прочитал, как можно просмотреть список имен (нажав кнопку «Все имена» в диалоговом окне, вызываемом из меню Вставка — Имя — Вставить…) и удалить ненужные

Сделал, удалил, но… диспетчер имён удаляет только видимые имена, а есть ещё и скрытые. 

Следующая ссылка привела на сайт Майкрософт (доступ только по учётной записи). Там выложен макрос, который позволяет удалять скрытые имена из эксель-файла. Копирую макрос здесь, чтобы на будущее не искать:

‘ Module to remove all hidden names on active workbook
Sub Remove_Hidden_Names()
‘ Dimension variables.
Dim xName As Variant
Dim Result As Variant
Dim Vis As Variant
‘ Loop once for each name in the workbook.
For Each xName In ActiveWorkbook.Names
‘If a name is not visible (it is hidden)…
If xName.Visible = True Then
Vis = «Visible»
Else
Vis = «Hidden»
End If
‘ …ask whether or not to delete the name.
Result = MsgBox(prompt:=»Delete » & Vis & » Name » & _
Chr(10) & xName.Name & «?» & Chr(10) & _
«Which refers to: » & Chr(10) & xName.RefersTo, _
Buttons:=vbYesNo)
‘ If the result is true, then delete the name.
If Result = vbYes Then xName.Delete
‘ Loop to the next name.
Next xName
End Sub

Вот вся последовательность необходимых действий:

На вкладке «Вид» (1) нажимаем кнопку «Макросы» (2) — выскакивает окно. Вводим произвольное имя (3) — становится доступной кнопка «Создать» (4). Нажимаем…

Открывается окно редактора макросов с набранными несколькими строчками заготовки макроса (5). 

Копируем код макроса на место имеющегося текста и закрываем окно текущего макроса (6) и окно редактора макросов.

Снова Вид — Макросы и видим, что произвольное имя изменилось на Remove_Hidden_Names. Выбираем и нажимаем «Выполнить» (7)

Макрос запрашивает подтверждение на удаление каждого из имен, но это в последний раз. Так как кнопка «Yes» активна по умолчанию и если ни одно имя не нужно, то можно просто нажать и держать «Enter», пока все имена не будут удалены.

Всё. Теперь вкладку можно копировать без каких-либо дополнительных подтверждений.

Удаление определений скрытых имен с недопустимыми именами в Excel 2003

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

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

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

Перейдите в меню «Инструменты» — «Параметры» — вкладка «Общие» — «Проверьте стиль ссылки R1C1». Затем нажмите «ОК».

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

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

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

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

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

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

В процессе работы над моделью в Excel возникла загадочная неисправимая ошибка. Т.к. модель состоит из нескольких книг, необходимо включать обновление связей между книгами модели. При попытке включить обновление связей:

Заходим в редактор связей и видим причину ошибки:

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

В Диспетчере имен пусто:

Не удается найти источник ошибочной ссылки…
Распаковываю книгу и копаюсь в xml файлах:

Наводит на размышления… Изучаю атрибуты класса Names во встроенном языке программирования, пишу такую микро процедуру:

После выполнения процедуры вижу приличный список имен в Диспетчере:

Удивляюсь, но не очень сильно =)
Удаляю имена и разрываю связь. Ошибка исчезает.

Возможно ли не пользуясь процедурой на VBA изменить статус скрытых имен? Я не нашел другого способа (Excel 2007).

Скрытые имена в Excel : 3 комментария

>> Возможно ли не пользуясь процедурой на VBA изменить статус скрытых имен?

Спасибо за макрос! Взял на вооружение.

Шикарно! Спасибо. Но не помогло ( Видимо, просто нужно удалить все именованные диапазоны.

Как убрать конфликт имен в Excel при копировании

Привет. Рад представить вам подробные инструкции по удалению скрытых имен в Excel. Возможно, вы столкнулись с ситуацией, когда при копировании листа в книгу Excel произошла ошибка, в которой говорилось, что имя уже существует и вам нужно выбрать новое или использовать его. Хорошо, если таких ошибок будет 2-3, а если их несколько сотен или тысяч, терпения не хватит, чтобы нажать ОК. Воспользовавшись приведенным ниже советом, вы навсегда избавитесь от ошибки! Итак, приступим:

1. Создание макроса удаления скрытых имен.

Я не нашел в Excel встроенной функции для решения этой проблемы, но есть замечательный макрос, с помощью которого мы избавимся от нее. Сначала вам нужно перейти в редактор макросов, для этого запустить Excel, открыть файл с проблемой и нажать ALT + F11. Откроется Microsoft Visual Basic для приложений, поэтому перейдите в меню «Вставка» и выберите «Модуль.

Откроется окно модуля. Вы должны поместить туда следующий код макроса:

Sub Удалить скрытые имена()
Dim n As Name
Dim Считается целым числом
В случае ошибки Продолжить Далее
Для каждого n в ActiveWorkbook.Names
Если не видно, то
n. Удалить
Счетчик = Счетчик + 1
Конец, если
Следующий n
MsgBox «Количество скрытых имен» & Количество & «Удалено»
Конец подзаголовка

Следовательно, это должно выглядеть так:

Хороший. Мы создали макрос, теперь осталось его применить.

2. Использование макроса для удаления скрытых имен в Excel.

Вернитесь в нашу книгу Excel, перейдите в меню «Просмотр», выберите там блок макросов и щелкните внутри него меню «Макросы.

В открывшемся меню выберите макрос «Удалить скрытые имена» и нажмите кнопку «Выполнить.

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

Удалить все кроме нужных именованные диапазоны

Anis625

Дата: Четверг, 01.04.2021, 16:23 |
Сообщение № 1

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Добрый день, всем участникам форума!
Прошу оказать содействие в правки моего кода «Франкенштейна»:
[vba]

Код

Sub DeleteExternalNames()
‘отображаем скрытые имена
Dim nName As Name
For Each nName In ActiveWorkbook.Names
   nName.Visible = True
Next nName
‘удаляем лишние имена
Dim n As Name
For Each n In Application.ActiveWorkbook.Names
    n.Delete
count = count + 1
Next n
MsgBox «Все имена в количестве » & count & » удалены»
End Sub

[/vba]
Этим кодом отображаю все скрытые имена и потом удаляю все именованные диапазона (т.к. при копировании листа всем известно что происходит с тысячами имен).
Но в некоторых файлах есть нужные именованные диапазоны (списки, умные таблицы, созданные в этой книге).
Попытался удалить только имена с ошибками:
[vba]

Код

For Each IName In ActiveWorkbook.Names
    If IName.RefersTo Like «*REF!*» Then
    IName.Delete ‘удаление имени с ошибками
    End If
Next

[/vba]
Но остаются имена с внешними ссылками или системными (которые подтянулись из файлов 1С).
На одном из сайте нашел что можно сделать «Если n.referestorange существует, и если n.referstorange.worksheet.parent is thisworkbook, то не удалять», но не понял как это вкрутить в свой код.
Буду признателен за любой совет.

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 16:33 |
Сообщение № 2

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Пустой файл с лишними именованными диапазонами весит почти метр. Сделал архив из двух файлов

 

Ответить

Pelena

Дата: Четверг, 01.04.2021, 18:49 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Попробуйте такой вариант, только сначала на копии файла)
[vba]

Код

Sub DeleteExternalNames()
‘отображаем скрытые имена
    Dim nName As Name
    For Each nName In ThisWorkbook.Names
        nName.Visible = True
    Next nName
    ‘удаляем лишние имена
    Dim n As Name, count As Long
    On Error Resume Next
    For Each n In ThisWorkbook.Names
        If InStr(n.RefersTo, «#») > 0 Or InStr(n.RefersTo, «\») > 0 Then
            n.Delete
            count = count + 1
        ElseIf Not n.RefersToRange.Worksheet.Parent Is ThisWorkbook Then
            n.Delete
            count = count + 1
        End If
    Next n
    MsgBox «Все имена в количестве » & count & » удалены»
End Sub

[/vba]


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 20:16 |
Сообщение № 4

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Pelena,
Даже с решением. Спасибо Вам, попробую

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 21:30 |
Сообщение № 5

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Pelena,
Не срабатывает код. Буквально сразу после запуска выводится сообщение msgbox «Все имена в количестве 0 удалены»
Получается сразу отрабатывается строка[vba][/vba]

Сообщение отредактировал Anis625Четверг, 01.04.2021, 21:47

 

Ответить

Pelena

Дата: Четверг, 01.04.2021, 22:05 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Вот, что стало с Вашим файлом-примером, которыйпосле работы макроса. Как видите размер резко уменьшился

К сообщению приложен файл:

__—.xlsm
(27.4 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 22:26 |
Сообщение № 7

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Pelena,
Странное дело — поместил код в «Личную книгу макросов» не работает. Поместил в модуль книги — работает. Из-за чего может быть так?
На счет размера — согласен, что в этом и была причина такого веса, поэтому и пытался решить задачку.

 

Ответить

Pelena

Дата: Четверг, 01.04.2021, 22:32 |
Сообщение № 8

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Если в личной книге макросов, надо заменить ThisWorkbook на ActiveWorkbook


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 22:40 |
Сообщение № 9

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Pelena,
Все отлично работает после замены. Спасибо Вам огромное.
Маленький (не критичный нюанс) только уточню. Код не отработал две ошибки (фото во вложении) из-за чего это может быть?

К сообщению приложен файл:

9304641.png
(12.7 Kb)

 

Ответить

Pelena

Дата: Четверг, 01.04.2021, 22:51 |
Сообщение № 10

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Удалите область печати с листа. Должно помочь.
Да и две ошибки можно и вручную удалить)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 22:57 |
Сообщение № 11

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Pelena,
Пусто там. И при копировании листа именно на них и выводится сообщение о конфликте имен.
В них вроде есть символ # который указан в коде, по идее должен снести и его тоже код

К сообщению приложен файл:

0590472.png
(20.7 Kb)

 

Ответить

Anis625

Дата: Четверг, 01.04.2021, 23:15 |
Сообщение № 12

Группа: Проверенные

Ранг: Ветеран

Сообщений: 670


Репутация:

31

±

Замечаний:
0% ±


Excel 2013

Pelena,
Марокодером записал действие удаления например заголовков печати:[vba]

Код

ActiveWorkbook.Names(«Print_Titles»).Delete

[/vba]
После запуска отдельно этого кода — не удаляет. Странно

 

Ответить

MulTEx »

19 Май 2012              10677 просмотров

Управление именами

Данная функция является частью надстройки MulTEx


Вызов команды:
MulTEx -группа Ячейки/ДиапазоныУправление именами


При помощи данного инструмента можно не просто просматривать всю полную информацию обо всех именах в книге (видимость имени, область действия, ссылка на диапазон или формула), но и изменять эту информацию, а так же удалять выбранные имена и добавлять новые, включая динамические имена. Основная особенность данной команды состоит в том, что она позволяет просмотреть информацию о скрытых именах и изменять свойства сразу нескольких имен. Стандартными методами Excel это сделать нельзя. Так же можно удалить только выделенные имена или массово изменить параметры имен, например видимость, область действия, имя или формулу.
Для большего удобства можно отбирать имена только с нужной областью действия и искать имена по содержанию введенного в поле Найти текста.
Управление именами

В основном поле списка отображаются имена, содержащиеся в активной книге и информация о них: непосредственно имя, область действия, видимость, диапазон. В этом же поле можно выбрать одно или несколько имен и произвести действия с выбранными: удалить, изменить видимость, изменить область действия (при возможности), изменить диапазон/формулу для имени. Для этого необходимо выделить нужные имена, в правой части формы выбрать необходимые действия и нажать кнопку «Подтвердить изменения». При этом надо учитывать, что не каждое имя и не с каждого листа может быть изменено. Имена на защищенных листах не могут быть изменены.
В правой части формы всегда отображаются данные об одном(первом из выбранных в списке) имени, даже если выбрано несколько имен.
Если имен много, то можно просматривать имена по области их действия при помощи выпадающего списка в верхней части формы и искать имена по названию при помощи специального поля вверху формы.
Чтобы изменить любое из имен(или несколько) необходимо выбрать имя в основном списке(проставить галочку напротив этого имени), в правой части формы выбрать необходимые изменения и нажать кнопку Подтвердить изменения.

  • Изменить имя — задается новое имя для именованного диапазона. После нажатия кнопки Подтвердить изменения имя будет изменено на заданное. При этом происходит проверка введенного значения на правила именования. Если выделено несколько имен — то изменить их имена на заданное можно только в том случае, если все имена расположены в разной области видимости(например, если выделено три имени, то одно должны быть с областью действия Лист1, другое — Лист2, третье — Лист3 или Книга).
  • Изменить видимость — после нажатия кнопки Подтвердить изменения видимость выбранных имен будет изменена на указанную
  • Изменить область действия — после нажатия кнопки Подтвердить изменения для выбранных имен будет изменена область действия на выбранную. Например, можно выбрать несколько имен с областью действия только на листе(листы могут быть разными) и указать новую область действия — Книга, чтобы имена работали на всех листах.
  • Изменить диапазон/формулу — для изменения формулы или диапазона имени необходимо выделить имя, перейти в поле «Диапазон имени/формула», сделать там необходимые изменения и нажать Подтвердить изменения. Изменения могут не примениться, если новая формула или диапазон будут содержать ошибки.

ДЕЙСТВИЯ С ИМЕНАМИ

    NameToRng Заменить имена в формулах на диапазоны — по нажатии все отмеченные именованные диапазоны во всех формулах будут заменены на формулы и ссылки, из которых состоит диапазон. К примеру если на листе записана формула: =ИНДЕКС(_магазины;3;1), то после выполнения данной команды имя будет заменено и формула будет выглядеть так: =ИНДЕКС(Лист1!$A$1:$A$25;3;1).
    Заменяются имена только на тех листах, на которых эти имена могут быть применены(определяется областью действия). Если область действия Книга, то замена будет произведена на всех листах книги.

    WriteNamesOnSheet Записать имена на новый лист — по нажатии будет создан новый лист, на который будут записаны все имена в книге и их свойства: Имя, Область действия, Видимость и Диапазон.

    Add_Name Добавить новое имя — добавляет новое имя на лист. По нажатии появится форма добавления имени:

    • Добавить имя
      Имя диапазона — задается имя для создаваемого диапазона. Не должно содержать пробелы и иные знаки препинания, использование которых недопустимо в именах. При использовании подобных символов они будут удалены.
    • Тип — задается тип имени: обычный или динамический. В поле Значения диапазона указывается диапазон ячеек, из которых будет создано имя. При задании обычного имени все ячейки будут использованы, включая пустые. При задании динамического — имя будет создано на основе формулы, которая отбирает значения от первой ячейки указанного диапазона, до последней заполненной. Такое имя будет расширяться вместе с добавлением в диапазон новых ячеек.
    • Видимость диапазона — задается видимость. Можно создать либо обычное видимое имя, либо скрытое. Скрытое имя можно использовать так же, как и простые, но увидеть его или удалить стандартными средствами Excel уже не получиться.
    • Область действия — задается область действия для имени. Если область действия один лист — то имя будет доступно в формулах исключительно на этом листе. Если же задать область действия книга — имя будет доступно со всех листов книги, независимо от того, на котором оно создано.

    Del_Names Удалить отмеченные имена — удаляет выбранные имена. Перед удалением будет выведен запрос о подтверждении на удаление.

РЕЖИМЫ ПРОСМОТРА И ВЫДЕЛЕНИЯ

    ChooseAll — выделяет все имена. Команда только выделяет имена в поле для произведения над ними дальнейших действий.

    ChooseOne — переключает режим выбора имен по одному. При нажатии будет возможно выбрать только одно имя из списка.

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

    NamesOnActSheet — по нажатии в поле будут показаны лишь имена с областью действия на активном листе и в книге. Может пригодиться, если имен много и необходимо посмотреть только те, что действуют для активного листа.

    NamesNonActSheet — по нажатии в поле будут показаны лишь имена с областью действия не на активном листе и в книге. Может пригодиться, если имен много и необходимо посмотреть только те, что действуют на других листах, кроме активного.

    VisibleSheets — по нажатии в поле будут показаны только видимые имена.

    HiddenSheets — по нажатии в поле будут показаны только скрытые имена.


Расскажи друзьям, если статья оказалась полезной:

  Плейлист   Видеоинструкции по использованию надстройки MulTEx

Привет. Рад представить вам подробные инструкции по удалению скрытых имен в Excel. Возможно, вы столкнулись с ситуацией, когда при копировании листа в книгу Excel произошла ошибка, в которой говорилось, что имя уже существует и вам нужно выбрать новое или использовать его. Хорошо, если таких ошибок будет 2-3, а если их несколько сотен или тысяч, терпения не хватит, чтобы нажать ОК. Воспользовавшись приведенным ниже советом, вы навсегда избавитесь от ошибки! Итак, приступим:

1. Создание макроса удаления скрытых имен.

Я не нашел в Excel встроенной функции для решения этой проблемы, но есть замечательный макрос, с помощью которого мы избавимся от нее. Сначала вам нужно перейти в редактор макросов, для этого запустить Excel, открыть файл с проблемой и нажать ALT + F11. Откроется Microsoft Visual Basic для приложений, поэтому перейдите в меню «Вставка» и выберите «Модуль.

Как удалить скрытые имена в Excel

Откроется окно модуля. Вы должны поместить туда следующий код макроса:

Sub Удалить скрытые имена()
Dim n As Name
Dim Считается целым числом
В случае ошибки Продолжить Далее
Для каждого n в ActiveWorkbook.Names
Если не видно, то
n. Удалить
Счетчик = Счетчик + 1
Конец, если
Следующий n
MsgBox «Количество скрытых имен» & Количество & «Удалено»
Конец подзаголовка

Следовательно, это должно выглядеть так:

Как удалить скрытые имена в Excel

Хороший. Мы создали макрос, теперь осталось его применить.

2. Использование макроса для удаления скрытых имен в Excel.

Вернитесь в нашу книгу Excel, перейдите в меню «Просмотр», выберите там блок макросов и щелкните внутри него меню «Макросы.

Как удалить скрытые имена в Excel

В открывшемся меню выберите макрос «Удалить скрытые имена» и нажмите кнопку «Выполнить.

Как удалить скрытые имена в Excel

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

Понравилась статья? Поделить с друзьями:
  • Макрос для удаления пустых столбцов excel
  • Макрос для сортировки листов в excel
  • Макрос для создания файла excel
  • Макрос для создания таблиц в word
  • Макрос для создания списка в excel