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

Здравствуйте. Рад представить Вам пошаговую инструкцию по удалению скрытых имен в Экселе. Вы возможно сталкивались с ситуацией, когда при копировании листа в книге 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

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

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

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

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

Всё бы ничего, но каждый раз при копировании выскакивает окно с уведомлением о том, что копируемые формулы содержат какие-то имена. И таких имён порядка 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», пока все имена не будут удалены.

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

Как в файле найти и удалить имена диапазонов, ячеек?

Автор marina, 04.07.2016, 15:58

« назад — далее »

Уважаемые специалисты!

Очень прошу помощи.
У меня есть файл, когда я выполняю «скопировать лист (создать копию)», вылетает сообщение, что «имя уже используется».
Я не создавала имен. Найти эти имена не получается. Пыталась через CNTR+F3, через диспетчер имен — там пусто.
Как найти эти странные имена? Как от них избавиться?
Перед этим я пыталась найти решение в интернете, что если в заголовке есть январь, февраль, и прочие зимние месяцы — надо брать зимний коэффициент расхода топлива. Ничего не получилось, я от затеи отказалась — просто тупо каждый месяц свою формулу использую.
Может я что из интернета прицепила? Не понимаю.


Здравствуйте

Отобразить скрытые имена можно макросом:

Sub ShowNames()
    Dim nm As Name
    For Each nm In ThisWorkbook.Names
        nm.Visible = True
    Next
End Sub

после чего их можно будет увидеть в диспетчере имен (Ctrl+F3). Остается выделить их все и удалить

Во вложении файл с удаленными именами


 Serge 007, спасибо большое.
Сделала.  Вы спасли мои файлы.


Всем доброго дня!

Может я зря в этой же теме пишу, надо создать новую.?
Но у меня вопрос в продолжение.
Почему-то почти все файлы, которые я открываю, имеют сейчас скрытые имена. С чет это может быть связано?

Руководством была поставлена задача создать файлы для 17-ти подразделений, в которых они будут заполнять бюджет на новый год.
Сделала файлы, защитила часть листов, защитила часть ячеек.
Может это повлиять на возникновение скрытых имен? Все, что создала в этой папке заразилось скрытыми именами.

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

Что делать? Чищу все файлы, которые открываю, спасибо  Serge 007! НО зараза распространяется. Что можно предпринять?
Что делаю неверно? Может кто-то из гуру подскажет?


ЦитироватьПочему-то почти все файлы, которые я открываю, имеют сейчас скрытые имена.

Вы создали файлы из исходного, в котором были (есть) эти имена. Или копируете из такого файла листы.


vikttur, спасибо.

Я очевидно в самом начале взяла файлы с именами.
Но я очищаю макросом от Serge 007, имена появляются опять.
Я не копирую вкладки, только связи с внешними файлами есть.
Еще в самом файле защищенные листы и в листе с вводом информации защищенные ячейки.


И катаклизмы им не страшны! Супервыживание! :)

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


Может, только я не знаю как его искать.
Спасибо, подумаю.


  • Профессиональные приемы работы в Microsoft Excel

  • Обмен опытом

  • Microsoft Excel

  • Как в файле найти и удалить имена диапазонов, ячеек?

Привет. Рад представить вам подробные инструкции по удалению скрытых имен в 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

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

Довольно часто люди скрывают какие-либо данные в табличках.

Это хороший вариант оставить видимыми только те данные, которые важны (например, в отчете), а остальные (например, вспомогательный столбик для расчетов) просто скрыть.

Но если вам эти данные больше не нужны — можно их удалить. В случае, если их очень много, это займет довольно много времени вручную.

В данной статье мы рассмотрим быстрые способы удаления скрытых столбиков и строк.

Итак, начнём!

Содержание

  1. Удаляем скрытые столбики и строки с помощью встроенных функций Excel
  2. СпомощьюVisual Basic
  3. Удаляем скрытые элементы из выделенного диапазона ячеек
  4. Удаляем скрытые элементы из определенного диапазона ячеек

Удаляем скрытые столбики и строки с помощью встроенных функций Excel

Мы можем использовать встроенную функцию Excel чтобы сделать это.

Но не забывайте, что с помощью этой функции мы удалим их сразу со всех листов. А не с какого-то отдельного.

Пошаговая инструкция:

  • Щелкните «Главная»;

  • Далее — «Сведения»;

  • Далее — «Проверка книги»;

  • Жмем «Проверить документ»;

  • И просто нажимаем «Проверить»;

  • Далее найдите Далее найдите «Скрытые строки и столбцы»;

  • И просто удалите их.

Готово! Таким образом, все скрытые элементы будут удалены. Вот результат проверки после удаления:

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

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

Обязательно сделайте резервную копию файла перед тем, как будете использовать этот способ. Так как изменения, которые вы сделаете — невозможно откатить.

Однако, этот способ не подойдет вам, если нужно удалить скрытые элементы только с одного листа. А другие не трогать.

В таком случае мы можем создать свою функцию с помощью Visual Basic.

С помощью Visual Basic

В этом разделе статьи мы создадим несколько функций (для разных целей) с помощью Visual Basic.

Начнём!

Удаляем скрытые элементы из выделенного диапазона ячеек

Мы можем создать функцию которая удалит скрытые элементы со всего листа, но я считаю что это глупая затея.

Самый приемлемый вариант — сделать так, чтобы функция удаляла скрытые элементы из выделенного диапазона. А там уже можно выделить и весь лист (CTRL + A), если это необходимо.

Код для удаления скрытых строк Visual Basic:

Sub DeleteHiddenRows() 
Dim sht As Worksheet 
Dim LastRow 
Set sht = ActiveSheet 
LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row   

For i = LastRow To 1 Step -1 
If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete 
Next   

End Sub

Lastrow — этой переменной присваивается номер последней строки в выделенном диапазоне.

Далее он проверяет скрыта или нет эта строка и так далее.

Если скрыта — удаляется.

Код для удаления скрытых столбиков Visual Basic:

Sub DeleteHiddenColumns() 
Dim sht As Worksheet 
Dim LastCol as Integer 
Set sht = ActiveSheet 
LastCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column   

For i = LastCol To 1 Step -1 
If Columns(i).Hidden = True Then Columns(i).EntireColumn.Delete 
Next   

End Sub

Работает точно так же, только для столбиков.

А этот код работает сразу для столбиков и строк:

Sub DeleteHiddenRowsColumns() 
Dim sht As Worksheet 
Dim LastRow as Integer 
Dim LastCol as Integer 
Set sht = ActiveSheet 
LastRow = sht.UsedRange.Rows(sht.UsedRange.Rows.Count).Row 
LastCol = sht.UsedRange.Columns(sht.UsedRange.Columns.Count).Column   

For i = LastRow To 1 Step -1 
If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete 
Next   

For i = LastCol To 1 Step -1 
If Columns(i).Hidden = True Then Columns(i).EntireColumn.Delete 
Next   
End Sub

Это, по сути, объединенные коды, которые мы уже рассмотрели.

Тут работает 2 цикла — сначала проверяются и удаляются скрытые строки, а потом столбики.

Код нужно вставить в Visual Basic -> правой кнопкой на любой лист -> «Insert» -> «Module».

Удаляем скрытые элементы из определенного диапазона ячеек

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

В таком случае, мы можем указать, в каком диапазоне удалять скрытые элементы и сделать это прямо в функции!

Пример такого кода:

Sub DeleteHiddenRowsColumns() 
Dim sht As Worksheet 
Dim Rng As Range 
Dim LastRow As Integer 
Dim RowCount As Integer 
Set sht = ActiveSheet 
Set Rng = Range("A2:B300") 
RowCount = Rng.Rows.Count 
LastRow = Rng.Rows(Rng.Rows.Count).Row 
ColCount = Rng.Columns.Count 
LastCol = Rng.Columns(Rng.Columns.Count).Column   

For i = LastRow To LastRow - RowCount Step -1 
If Rows(i).Hidden = True Then Rows(i).EntireRow.Delete 
Next   

For j = LastCol To LastCol - ColCount Step -1 
If Columns(j).Hidden = True Then Columns(j).EntireColumn.Delete 
Next     

End Sub

Эта функция удалит все скрытые элементы из A2:B300.

Сам код такой же, как и те, что мы рассмотрели ранее, но в нем указан конкретный диапазон.

Вот и все! Рекомендую использовать встроенную функцию проверки документа, если вам нужно удалить скрытые элементы со всех листов. А в других случаях — используйте любой из кодов для Visual Basic.

Надеюсь, эта статья оказалась полезной для вас!

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Как удалить скрипт excel
  • Как удалить скобки в ячейке excel
  • Как удалить скобки в тексте в excel
  • Как удалить скачанный word
  • Как удалить символы слева в ячейке excel

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии