Поиск неиспользуемых имен

Автор: | 14.05.2021

У Ричарда есть книга, которую он использует некоторое время, и в ней довольно много имен (именованные диапазоны, именованные формулы и т. д.). Он задается вопросом, есть ли простой способ найти имена, которые вообще не используются, поскольку он хотел бы избавиться от этих имен.

Нет встроенного способа избавиться от эти неиспользованные имена. Однако вы можете создать макрос, который поможет вам. Это проще всего сделать, используя метод Find, чтобы выяснить, какие имена имеют ссылки, которые можно «найти». Если ссылка не может быть найдена, значит, имя не используется.

 Sub RidOfNames () Dim myName As Name Dim fdMsg As String On Error Resume Next fdMsg = "" Для каждого myName в именах, если  Cells.Find (What: = myName.Name, _ After: = ActiveCell, _ LookIn: = xlFormulas, _ LookAt: = xlPart, _ SearchOrder: = xlByRows, _ SearchDirection: = xlNext, _ MatchCase: = False, _ SearchFormat:  = False) .Activate = False Then fdMsg = fdMsg & myName.Name & vbCr ActiveWorkbook.Names (myName.Name) .Delete End If Next myName If fdMsg = "" Then MsgBox "В книге" Else MsgBox "неиспользуемых имен не найдено  Удаленные имена: "& vbCr & fdMsg End IfEnd Sub 

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

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

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

 http://www.jkp-ads.com/OfficeMarketPlaceNM-EN.asp