Добрый день!
Столкнулся с такой проблемой...
После ряда вычислений и сравнений в файле остались ссылки на другие файлы экселя с данными. Финальный файл переместился в другое место - и понятное дело, ссылки на другие файлы умерли... теперь при каждом открытии файла эксель ругается что в файле невозможно обновить связи... бла бла бла... Как теперь мне эти ячейки с формулами где я использовал ранее ссылки на другие книги эселя найти? В идеале хорошо бы там просто зафиксировать цифры как есть - без обновления, а связи вообще удалить... не могу понять как это сделать - особенно в ситуации когда таких формул со ссылками в другие книги может быть больше миллиона
Добрый день,
Данные - Редактировать ссылки - разорвать ссылки
как-то так
Забыл уточнить... про этот способ я знаю... но вот по какой-то причине у меня эта кнопка не активна - она просто серая - как буд-то связей нет.
Осложняется всё тем, что предоставить файл для разборки на форуме не могу - мало того что он посто огромный, так там ещё и слишком уж много разной инфы, которую не хочется светить.
а вот так можно программно избавиться от ссылок и рефов в менеджере имен (Ctrl+F3)
Option Explicit
Public Sub Names_Delete_Links()
' Макрос записан 02.07.2019 (boa)
' удалить имена в книге с ссылками на другие книги
On Error Resume Next
Dim objName As Object, iCount&, sMsg$
For Each objName In ActiveWorkbook.Names
If InStr(objName.RefersTo, "]") Then
'Debug.Print objName.Name; objName.RefersTo
objName.Delete: iCount = iCount + 1
End If
Next objName
If iCount > 0 Then sMsg = "Удалено " & iCount & " имен с ссылками на другие книги." Else sMsg = "Не найдены имена для удаления"
MsgBox sMsg, vbInformation, ""
End Sub
Public Sub Names_Delete_REF_Links()
' Макрос записан 02.07.2019 (boa)
' удалить имена в книге с битыми ссылками
On Error Resume Next
Dim objName As Object, iCount&, sMsg$
For Each objName In ActiveWorkbook.Names
If InStr(objName.RefersTo, "#REF!") Then
'Debug.Print objName.Name; objName.RefersTo
objName.Delete: iCount = iCount + 1
End If
Next objName
If iCount > 0 Then sMsg = "Удалено " & iCount & " имен с ""битыми"" ссылками." Else sMsg = "Не найдены имена для удаления"
MsgBox sMsg, vbInformation, ""
End Sub
Еще проверьте _сводные_ (https://msexcel.ru/content/view/34/2/) таблицы (если есть). Они могут ссылаться на другие книги, но в Данные - Связи это не прописывается
Цитата: _Boroda_ от 09.08.2019, 16:49
Еще проверьте _сводные_ (http://msexcel.ru/content/view/34/2/) таблицы (если есть). Они могут ссылаться на другие книги, но в Данные - Связи это не прописывается
ДА! Нашёл! Спасибо - действительно, в сводных они и были... совсем зыбл про них.