Бывает так, что при перемещении файла Excel в нем “ломаются” ссылки на другие сетевые или локальные файлы, кроме того при открытии вы наблюдаете ошибку:
Все ссылки разом можно исправить несложным VBS скриптом https://excelvba.ru/code/replace_hyperlinks:
Sub ЗаменаИспорченныхГиперссылок2() On Error Resume Next Dim hl As Hyperlink, oldString$, newString$, sh As Worksheet, n&, msg$, coll As New Collection, Item ' часть гиперссылки, подлежащая замене oldString = "../../AppData/Roaming/Microsoft/Excel/" ' на что заменяем newString = "C:\Users\Admin\Desktop\ОТЧЁТЫ ВСЕ\" For Each sh In ActiveWorkbook.Worksheets ' перебираем все листы в активной книге For Each hl In sh.Hyperlinks ' перебираем все гиперссылки на листе ' Debug.Print hl.Address If (hl.Address Like oldString & "*") Or (hl.Address Like Replace(oldString, "/", "\") & "*") Then hl.Address = Replace(hl.Address, oldString, newString, , , vbTextCompare) hl.Address = Replace(hl.Address, Replace(oldString, "/", "\"), newString, , , vbTextCompare) n = n + 1 Else If InStr(1, hl.Address, "mailto", vbTextCompare) = 0 Then coll.Add hl.Address, UCase(hl.Address) End If Next Next sh For Each Item In coll msg$ = msg$ & Item & vbNewLine Next MsgBox "Заменено гиперссылок: " & n & IIf(Len(msg$), vbNewLine & vbNewLine & _ "Также в файле найдены ссылки на:" & vbNewLine & msg$, ""), vbInformation End Sub
Последовательность действий https://sovet.livejournal.com/2397.html:
1. Нажимаем Alt+F11
2. В меню открывшегося окна Microsoft Visual Basic выбираем Insert…—Module
3. В открывшемся документе вставляем код макроса (см. выше)
4. Закрываем окно Microsoft Visual Basic
5. Нажимаем Alt+F8
6. В открывшемся окне выделяем созданный макрос и запускаем
При замене путей на свои в макросе следите за корректностью кодировки.