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

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

Sub RidOfNames()

Dim myName As Name     Dim fdMsg As String

On Error Resume Next     fdMsg = ""

For Each myName In Names         If 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 "No unused names found in the workbook"

Else         MsgBox "Names Deleted:" & vbCr & fdMsg     End If End Sub

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

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

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

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

_Примечание: _

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

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (10998) относится к Microsoft Excel 2007, 2010 и 2013. Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь: link: / excel-Finding_Unused_Names [Поиск неиспользуемых имен].