Здравствуйте. Рад представить Вам пошаговую инструкцию по удалению скрытых имен в Экселе. Вы возможно сталкивались с ситуацией, когда при копировании листа в книге Excel возникала ошибка, которая сообщает что Имя уже существует и нужно либо выбрать новое, либо использовать тоже. Хорошо если таких ошибок 2 — 3, а если их несколько сотен или тысяч, тогда никакого терпения не хватит нажимать ОК. Используя рекомендации, представленные ниже, Вы избавитесь от ошибки навсегда! Итак, приступим:
1. Создание макроса DeleteHiddenNames.
Встроенной функции в Excel для решения этой проблемы я не нашел, зато есть замечательный макрос, с помощью которого мы от нее избавимся. Сначало надо зайти в редактор макросов, для этого запустите Excel, откройте файл с проблемой и нажмите ALT+F11. Откроется Microsoft Visual Basic for Applications, далее заходим в меню Insert и выбираем Module.
Открывается окно модуля. Туда Вы должны вставить следующий код макроса:
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
Выглядеть это должно в результате следующим образом:
Отлично. Макрос мы создали, теперь нам осталось его применить.
2. Использования макроса для удаления скрытых имен в Excel.
Переключаемся назад на нашу Эксель книгу, переходим в меню Вид, там выбираем блок Макросы и в нем нажимаем на меню Макросы.
В открывшемся меню выбираем макрос DeleteHiddenNames и нажимаем кнопку выполнить.
Макрос отработает некоторое время (чем больше скрытых имен у Вас в файле, тем дольше он будет работать) и выдаст сообщение о том, сколько имен было удалено. Поздравляю Вы избавились от проблемы и можете смело копировать листы.
Я надеюсь что эта инструкция Вам помогла, заходите на сайт почаще — здесь много еще чего полезного для Эксель найдете. Есть вопросы — смело пишите их в комментариях к статье.
Excel для Microsoft 365 Excel 2021 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel Starter 2010 Еще…Меньше
Диалоговое окно «Диспетчер имен» используется для работы со всеми определенными именами и именами таблиц в книге. Например, может потребоваться найти имена с ошибками, подтвердить значение и ссылку на имя, просмотреть или изменить описательные комментарии или определить область. Вы также можете отсортировать и отфильтровать список имен, а также легко добавлять, изменять или удалять имена из одного расположения.
Чтобы открыть диалоговое окно Диспетчер имен, на вкладке Формулы в группе Определенные имена нажмите кнопку Диспетчер имен.
В диалоговом окне Диспетчер имен отображаются следующие сведения о каждом имени в списке.
Имя столбца |
Описание |
---|---|
Имя |
Одно из следующих значений:
|
Значение |
Текущее значение имени, такое как результаты формулы, строковая константа, диапазон ячеек, ошибка, массив значений или знаки-заполнители, если формулу не удается вычислить. Вот типичные примеры.
|
Диапазон |
Текущая ссылка для имени. Вот типичные примеры.
|
Область |
|
Примечание |
Дополнительные сведения об имени длиной до 255-ти знаков. Вот типичные примеры.
|
Объект ссылки: |
Ссылка на выбранное имя. Диапазон имени можно быстро изменить, изменив сведения в поле «Ссылки «. После внесения изменений можно нажать кнопку » |
Примечания:
-
При изменении содержимого ячейки нельзя использовать диалоговое окно диспетчера имен.
-
В диалоговом окне диспетчера имен не отображаются имена, определенные в Visual Basic для приложений (VBA) или скрытые имена (свойство Visible имени имеет значение False).
-
На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя.
-
В диалоговом окне «Новое имя» введите имя, которое вы хотите использовать для ссылки.
Примечание: Длина имени не может превышать 255 знаков.
-
Область автоматически по умолчанию используется для книги. Чтобы изменить область имени, в раскрывающемся списке «Область» выберите имя листа.
-
Также в поле Примечание можно ввести описание длиной до 255 знаков.
-
В поле Диапазон выполните одно из указанных ниже действий.
-
Нажмите кнопку «Свернуть
» (при этом диалоговое окно временно сжимается), выделите ячейки на листе и нажмите кнопку » Развернуть диалоговое окно»
.
-
Чтобы указать константу, введите = (знак равенства), а затем значение константы.
-
Чтобы указать формулу, введите =, а затем формулу.
Советы:
-
Будьте внимательны при использовании абсолютных или относительных ссылок в формуле. Если создать ссылку, щелкнув ячейку, на которую вы хотите ссылаться, Excel создать абсолютную ссылку, например «Sheet1!$B$1». Если ввести ссылку, например «B1», это относительная ссылка. Если при выборе имени активной ячейкой является A1, то ссылка на «B1» действительно означает «ячейка в следующем столбце». Если вы используете определенное имя в формуле в ячейке, ссылка будет на ячейку в следующем столбце относительно места ввода формулы. Например, если ввести формулу в C10, ссылка будет иметь значение D10, а не B1.
-
Дополнительные сведения: переключение между относительным, абсолютным и смешанным ссылками
-
-
-
Чтобы закончить и вернуться на лист, нажмите кнопку ОК.
Примечание: Чтобы расширить или удлинить диалоговое окно Создание имени, щелкните и перетащите маркер захвата, расположенный внизу.
При изменении определенного имени или имени таблицы все его использование в книге также изменяется.
-
На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.
-
В диалоговом окне диспетчера имен дважды щелкните имя, которое вы хотите изменить, или выберите имя, которое вы хотите изменить, а затем нажмите кнопку «Изменить».
-
В диалоговом окне Изменение имени введите новое имя для ссылки в поле Имя.
-
Измените ссылку в поле Диапазон и нажмите кнопку ОК.
-
В диалоговом окне Диспетчер имен в поле Диапазон измените ячейку, формулу или константу, представленную этим именем.
-
На вкладке Формулы в группе Определенные имена выберите пункт Диспетчер имен.
-
В диалоговом окне Диспетчер имен щелкните имя, которое нужно изменить.
-
Выделите одно или несколько имен одним из способов, указанных ниже.
-
Для выделения имени щелкните его.
-
Чтобы выбрать несколько имен в непрерывной группе, щелкните и перетащите их, а затем нажмите клавишу SHIFT и нажмите кнопку мыши для каждого имени в группе.
-
Чтобы выбрать несколько имен в несмежной группе, нажмите клавишу CTRL и нажмите кнопку мыши для каждого имени в группе.
-
-
Нажмите кнопку Удалить.
-
Нажмите кнопку ОК, чтобы подтвердить удаление.
Используйте команды раскрывающегося списка Фильтр для быстрого отображения подмножества имен. Выбор каждой команды включает или отключает операцию фильтра, что упрощает объединение или удаление различных операций фильтра для получения нужных результатов.
Можно выполнить фильтрацию из следующих параметров:
Параметр |
Действие |
---|---|
Имена на листе |
Отобразить только локальные имена листа. |
Имена в книге |
Отобразить только глобальные имена в книге. |
Имена с ошибками |
Отображение только имен со значениями, содержащими ошибки (например, #REF, #VALUE или #NAME). |
Имена без ошибок |
Отобразить только те имена, в значениях которых нет ошибок. |
Определенные имена |
Отобразить только те имена, которые определены пользователем или Excel, такое как имя области печати. |
Имена таблиц |
Отобразить только имена таблиц. |
-
Чтобы отсортировать список имен в порядке возрастания или убывания, щелкните заголовок столбца.
-
Чтобы автоматически изменить размер столбца в соответствии с самым длинным значением в этом столбце, дважды щелкните правую часть заголовка столбца.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Почему в Excel появляется диалоговое окно «Конфликт имен»?
Создание именованного диапазона в Excel
Вставка именованного диапазона в формулу в Excel
Определение и использование имен в формулах
Нужна дополнительная помощь?
Как очистить/удалить все имена в книге?
Автор Василий Алибабаевич, 11.08.2008, 12:41
« назад — далее »
Есть книга, состоящая из одного листа.
Сразу скажу — это выгрузка из ERP системы в виде xls файла.
На листе есть данные и очень многим ячейкам присвоены имена. Я так понимаю, что в некоторых столбцах каждой ячейке с данными присвоено имя
Это очень неудобно.
Есть ли способ удаления всех имен всех поименованных ячеек/диапазонов на листе?
Если это один лист, то можно скопировать, вставить в новую книгу — и все перенесется, кроме имен. А если листов несколько
Навскидку: могут перестать работать формулы, макросы, условные форматы, проверка данных, слетит диапазон печати… Возможны и еще какие-то неприятности, и, что самое отвратительное, проявиться они могут не сразу.
Sub KillNames()
Dim nm As Name
For Each nm In ActiveWorkbook.Names
nm.Delete
Next
End Sub
Спасибо!
Ничего не слетит — т.к. имена будут убиваться сразу после выгрузки, где ничего этого нет, только значения.
- Профессиональные приемы работы в Microsoft Excel
-
►
Обмен опытом -
►
Microsoft Excel -
►
Как очистить/удалить все имена в книге?
vanya7819
Пользователь
Сообщений: 88
Регистрация: 25.01.2013
Доброго времени суток! Подскажите, пожалуйста… Мне нужно удалить все имена в диспетчере имен.
На сайте нашел макрос, но он для моего файла не подходит.
Код |
---|
Sub DellAllName() Dim name As Object For Each name In ActiveWorkbook.Names name.Delete Next End Sub |
Файл должен иметь расширение «*.xlsb», Имен очень много будет, хотелось бы макросом, если это возможно (с расширением «*.xlsm» — работает)
Спасибо!
Изменено: vanya7819 — 08.12.2017 23:39:34
На работе мне приходится заполнять эксель-файл с индивидуальными целевыми показателями (используется для расчета премии). Шаблоны файлов поступили из центрального офиса. Ежемесячно я копирую последнюю вкладку и заполняю актуальной информацией.
Всё бы ничего, но каждый раз при копировании выскакивает окно с уведомлением о том, что копируемые формулы содержат какие-то имена. И таких имён порядка 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», пока все имена не будут удалены.
Всё. Теперь вкладку можно копировать без каких-либо дополнительных подтверждений.