Отобразить скрытые имена 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

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

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

Автор 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

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

Ребята, я только что тоже потестировал.  
Выяснил, что скрытые имена, оканчивающиеся на !_FilterDatabase , удалять нельзя — перестают работать установленные автофильтры.  
А не скрытое имя области печати — Print_Area — тоже удалять не стоит, наверное.  
Поэтому я слепил такой макрос:  

  Sub EraseNames()   ‘ очистка списка имен диапазонов  
  Dim nM As Name  
  For Each nM In ActiveWorkbook.Names  
     If Not nM.Visible Then  
        If Not nM.Name Like «*!_FilterDatabase» Then nM.Delete ‘ удалить все скрытые имена диапазонов кроме фильтров  
     Else  
        If Not nM.Name Like «*!Print_Area» Then  
           Select Case MsgBox(«Удалить имя диапазона:» & vbCrLf & vbCrLf _  
                              & nM.Name & nM.RefersTo, vbYesNoCancel + vbQuestion)  
              Case vbYes: nM.Delete  
              Case vbCancel: Exit Sub  
           End Select  
        End If  
     End If  
  Next nM  
End Sub

Вывод списка имён (Names) книги Excel на новый лист

Если вы хотите посмотреть, присутствуют ли в книге Excel назначенные имена,
сделать это просто — достаточно вызвать диспетчер имён нажатием комбинации клавиш Ctrl + F3: 

В диспетчере имён можно создать новые имена, просмотреть ранее созданные, и, при желании, изменить их.

Одно но: в диспетчере имён отображаются только видимые имена,

а в книге Excel могут присутствовать и скрытые.

Чтобы узнать количество имён в книге, а также посмотреть их значения,
мы воспользуемся макросом:

Sub ПолучениеСпискаИмёнВКниге()
    Dim n As Name, VisibleNames%, HiddenNames%, WB As Workbook, i As Long
    Set WB = ActiveWorkbook
    For Each n In WB.Names
        VisibleNames = VisibleNames - n.Visible
        HiddenNames = HiddenNames - Not n.Visible
    Next n
 
    If VisibleNames + HiddenNames = 0 Then
        MsgBox "Имена в книге отсутствуют (не назначены)", vbInformation
    Else
        msg = "Количество имён в книге: " & VisibleNames + HiddenNames & vbNewLine & _
              "Из них видимых: " & VisibleNames & ", скрытых: " & HiddenNames & vbNewLine & _
              vbNewLine & "Вывести на лист список всех имён?"
        If MsgBox(msg, vbInformation + vbYesNo, "Имена в открытом файле") = vbYes Then
            Dim sh As Worksheet: Set sh = Workbooks.Add(xlWBATWorksheet).Worksheets(1)
            sh.Cells(1, 1).Resize(, 4).Value = _
            Array("№", "Имя", "Видимость", "Ссылка (значение)")
            sh.Cells(1, 1).Resize(, 4).Interior.ColorIndex = 15
            For i = 1 To WB.Names.Count
                Set n = WB.Names(i)
                sh.Cells(i + 1, 1).Resize(, 4).Value = _
                Array(i, n.Name, IIf(n.Visible, "Видимое", "Скрытое"), "'" & n.RefersTo)
            Next i
            sh.UsedRange.EntireColumn.AutoFit
        End If
    End If
End Sub

Для этого в прикреплённом файле нажмём зеленую кнопку,
и увидим вообщение с информацией о количестве имен в книге:

Если в диаоговом окне мы нажмём «Да», то макрос создаст новую книгу, и сформирует в ней таблицу со списком всех имен книги:

Если же вам требуется вывести список видимых имён на лист Excel, то можно воспользоваться макросом из одной строки:

Sub СписокВидимыхИмён()
    ActiveCell.ListNames
End Sub

Того же эффекта можно добиться, нажав кнопку «Все имена» в диалоговом окне, вызываемом из меню Вставка — Имя — Вставить… (в Excel 2003):

  • 29072 просмотра

Не получается применить макрос? Не удаётся изменить код под свои нужды?

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

MulTEx »

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

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

Данная функция является частью надстройки 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

Like this post? Please share to your friends:
  • Отобразить сетку в word что это
  • Отобразить панель настройки изображения word
  • Отобразить определенные строки в excel
  • Отобразить одну страницу на листе excel
  • Отобразить область навигации для поиска в документе ms word