'посмотреть ИМЕНА книги
Sub PutNames()
Dim Nm As Name
Dim stNames As String
For Each Nm In ThisWorkbook.Names
If stNames <> Empty Then
stNames = stNames & ", " & Nm
Else
stNames = Nm
End If
Next
MsgBox stNames
End Sub
'удалить ВСЕ имена из книги
Sub DelNames()
Dim Nm As Name
Dim stNames As String
For Each Nm In ThisWorkbook.Names
Nm.Delete
Next
End Sub
'удалить имена из книги кроме...
Sub DelNames()
Dim Nm As Name
Dim stNames As String
On Error Resume Next
arrNames = Array("Имя_1", "Имя_2", "Имя_3") 'замените на свои Имена
With CreateObject("Scripting.Dictionary")
For I = 0 To UBound(arrNames)
.Add arrNames(I), arrNames(I)
Next
For Each Nm In ThisWorkbook.Names
If Not .Exists(Nm.Name) Then Nm.Delete
Next
End With
End Sub
Согласие есть продукт при полном непротивлении сторон
Как еще один человек, не умеющий в макросы, хотел спросить, а что нужно прописать, чтобы макрос DelNames игнорировал ошибки о недопустимости имен (Runtime error 1004).
Не во всех моих книгах вышеприведенные макросы отрабатывают, некоторые завершаются с этой ошибкой.
можно просто пропуск ошибок добавить: On Error Resume Next
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Коллеги, данный макрос рушит связи с другими файлами (через запрос power query) сохраняет файл, а при повторном открытии, ругается на повреждение, и восстанавливает без связей
можете обновить макрос, чтобы не убивал связи с другими файлами (через формулы) и через PQ