Как массово изменить гиперссылки в excel

Всем привет! Как-то на работе столкнулся на работе с интересной задачей. Во время работе Excel выдал ошибку и закрыл окно. После попытки открыть файла оказалось, что все гиперссылки в документе изменили часть своего пути.

Решение

  1. Открываем VBA (Visual Basic for Applications) через Alt+F11
  2. В окне Project-VBAProject (левой верхнее) правой кнопкой мыши делаем Insert — Module
  3. В появившемся большом окне вставляем код макроса вида с нашими ссылками (первая ссылка — что нужно поменять, вторая — на что нужно поменять)
Sub Hyper()
For i = 1 To ActiveSheet.Hyperlinks.Count
    ActiveSheet.Hyperlinks(i).Address = Replace(ActiveSheet.Hyperlinks(i).Address, "../../../AppData/Roaming/Microsoft/Excel/", "\Users\User\Desktop\Фирма\Договора\")
Next
End Sub

      4. Закрываем VBA.

       5. Через Сервис — Макрос — Макросы ( или по Alt+F8) выбираем макрос и нажимаем «Выполнить».

Пути гиперссылкок будут заменены. Проверено — работает!

Спасибо за помощь http://forum.ixbt.com/topic.cgi?id=23:33826

Размещено в WINDOWS и отмечено .

1 комментарий

  1. Пользователь скопировал к себе с сервера на комп файл, при этом адрес множества гиперссылок приняли вид «..AppDataRoamingMicrosoftExcelВходящие,%20исходящие305293131975136761ЭЛЕКТРОННЫЙ%20АРХИВИсходящие%202016%20гИмя_файла». Текст ячеек имеет вид «ЭЛЕКТРОННЫЙ АРХИВИсходящие 2016 гИмя_файла». Используя макрос, указываю диапазон проблемных ячеек. В поле «Что меняем» вставляю «..AppDataRoamingMicrosoftExcelВходящие,%20исходящие305293131975136761ЭЛЕКТРОННЫЙ%20АРХИВИсходящие%202016%20г», в поле «На что меняем» указываю путь «\имя_сервераимя_сетевой_шарыЭЛЕКТРОННЫЙ АРХИВИсходящие 2016 г», но эффекта 0. Пробовал как диапазон так и 1 ячейку. В этом же файле создаю произвольную гиперссылку \тесттест и макрос её меняет на \что_угодночто_угодно. Буду рад помощи 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.