Applies ToExcel для Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

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

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

Проблема

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

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

Выполните следующий макрос, чтобы удалить скрытые имена. Макрос отображает окно сообщения, в котором перечислены три элемента: (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

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

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.