Как восстановить гиперссылки в excel
Перейти к содержимому

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

Макрос для исправления повреждённых гиперссылок во всей книге Excel

Макрос для исправление повреждённых гиперссылок во всей книге:

Если нужно заменить несколько вариантов неверных ссылок, код будет таким:

Расширенная версия этого макроса учитывает, что слеш в ссылках может быть как прямым, так и обратным, а также выводит информацию о количестве произведённых замен, и список ссылок из файла, которые не были обработаны (к которым замены не были применены)

  • 55574 просмотра

Комментарии

Елена, это уже совсем другой макрос нужен.
Можем сделать под заказ. От 1500 руб.

Скажите, пожалуйста, как сделать, чтобы макрос по введенной уже гиперссылке проверял наличие объекта сначала по указанному адресу (1) и если оттуда объект уже перенесен, адрес менялся на другой (2). Гиперссылка создается на папки объектов на удаленном сервере, а со временем они переносятся в другую папку- архив. Надеюсь понятно написала.

Не знаю что даже сказать. Магия сработала. Спасибо разработчик большое! Здоровья тебе и твоим близким.

Спасибо Дружище. Желаю тебе всего хорошего, чего сам себе желаешь.

Отличный макрос! Спасибо!

Автор, спасибо огромное!

Спасибо ОГРОМНОЕ . Помогло, заменил 267 гиперссылок.

Спасибо автору! Макрос помог!

Благодарю тебя за то что ты есть, и написал такой прекрасный макрос.
Ты спас годовую работу трех человек.

Поcле выполнения макроса, ссылки не меняются и выпадает сообщение: Заменено гиперссылок 0. Также в файле найдены ссылки на: и перечисляются гиперссылки.

Сработал расширенный макрос,
более 5000 адресов исправлены на коректные
Огромная благодарность
Дай Бог тебе здоровья автор

Добрый день! Прогнал расширенную версию макроса, он отработал, но не все. после нажатия на ошибочную гиперссылку и дальнейшим запуском макроса он ее отрабатывает, а остальные просто выводит в протокол что они есть.

Я спасён!
Огромное спасибо за помощь! Помогли сэкономить огромный вал рабочего времени!

Огромно спасибо. Автоматически исправил более 5 тысяч ссылок в архиве. Все работает. Ну просто нет слов, как я Вам признателен.

СПАСИБО ОГРОМНОЕ ЗА ВАШ РЕСУРС И ДОБРОТУ.
Правда, Ваш макрос у меня не работает почему-то, цель сделать из абсолютных ссылок относительные.но выяснилось, что вполне работает обычное "найти и заменить"
в строку "найти" пишем кусок пути ДО нужной папки, а в "заменить" оставляем пустоту, ставим галку "во всей книге" и жмем "заменить все"

пс, на всяк случай
изначальный вид ссылки был C:\Users\SVETLANA\Desktop\Крит дефектовка — копия\Вилла1\14.11.2016 16-38-43_PB148421.JPG
файл excel лежит в папке Вилла1
В найти и заменить меняю C:\Users\SVETLANA\Desktop\Крит дефектовка — копия\ на пусто
На другом компьютере ссылки работают корректно

Слетели все ссылки после вставки автосохраненного файла. Почему то данный макрос не работает
Sub ZamenaIsporchennihGiperssilok()
On Error Resume Next
Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
‘ part of hyperlink, which you want to change
oldString = "C:\Users\DianaGA\AppData\Roaming\Microsoft\Excel"
‘ to what to change
newString = "C:\Users\DianaGA\Dekstop\ÀÁÌ — 2015"
For Each sh In ActiveWorkbook.Worksheets ‘ ïåðåáèðàåì âñå ëèñòû â àêòèâíîé êíèãå
For Each hl In sh.Hyperlinks ‘ ïåðåáèðàåì âñå ãèïåðññûëêè íà ëèñòå
If hl.Address Like "*" & oldString & "*" Then
hl.Address = Replace(hl.Address, oldString, newString)
End If
Next
Next sh
End Sub
Никаких действий не происходит

Тут ничего особенного делать не надо, — Excel сам все гиперссылки в книге подправит, как только вы лист переименуете.

Добрый вечер всем! Выручайте! Как изменить имя листа книги в Excel при этом не потеряв гиперссылки? Заранее благодарю!

Спасибо тебе, добрый человек!

Благодарность не знает границ! Спасибо очень выручили!)))

Автор, огромное вам СПАСИБО. Очень выручили

Доброго дня! Подскажите, пожалуйста, код макроса, который бы в выделенном диапазоне ячеек (каждая из которых ссылается в относительном режиме на какую-то ячейку этого же листа) заменил все относительные ссылки на абсолютные.

vitamax555, а какое отношение ваш вопрос имеет к теме статьи, — замене гиперссылок?
На вопросы «не в тему» не отвечаю

Доброго дня! Подскажите, пожалуйста, у меня есть экселевский файл и в нем прописан код VBA. Вроде бы работал правильно, но мне нужно было изменить данные, так как не правильно тянул часть данных из исходника. Как только изменил данные и исходник, данные стали грузиться правильно, однако очень долго. Так раньше на это требовалось около 1 минуты, теперь это занимает 10. Что мне делатать. Подскажите, пожалуйста! Спасибо!

Почему то макрос меняет гиперссылку только в одной ячейке, следующую не трогает. Приходится запускать столько раз, сколько ячеек. Как будто цикл не срабатывает.

Здравствуйте, Юрий
Достаточно убрать цикл по листам,
применяя изменения только к активному листу:

Спасибо! Очень выручила данная статья!
Но как всегда возник вопрос — как изменить данный макрос, что бы изменения коснулись только ОДНОГО листа в книге? (Файлов больших несколько, листов в каждом масса, соответственно разбирать файл по листам а потом собирать его обратно — очень долгий и не совсем желаемый процесс. )
Заранее СПАСИБО.

целую твои умелые ручки, автор!

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

Здравствуйте, Владимир
Так не получится, — Excel (тем более, если он не запущен) не отслеживает перемещение файлов и папок.
Да и как Excel узнает, где искать перемещенные файлы. мало ли куда вы их перенесете, вдруг вообще на другой комп.

Надо делать гиперссылки относительными (чтобы путь прописывался относительно файла Excel)?
а папку с файлами держать в той же папке. где сохранён файл Excel, и не переименовывать.
Тогда,если переносите на другой комп файл Excel вместе с папкой, гиперссылки вроде должны сохранять работоспособность.

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

Здравствуйте, Татьяна.
Так вы перенесите файлы на другой комп в ту же папку (чтобы путь к папке не изменился), — и тогда ничего переделывать не придётся.
А если путь к папке изменится, — тогда макрос этот поможет.

Как запустить макрос — объяснять не буду (об этом в интернете много написано, в т.ч. есть видеоинструкции)
В макросе надо будет только задать, что на что менять (в коде указать старый путь к папке, и новый)
Попробуйте, — всё очень просто.
PS: Чтобы вставить макрос в файл, надо нажать сначала Alt + F11, потом Ctrl + R, потом Enter, — и в появившееся большое текстовое поле скопировать код из статьи.

Здравствуйте!
Я в вопросе макросов вообще новичок, вернее никогда с ними не работала, поэтому прошу помощи в следующем вопросе. Я создала файл в EXELе со множеством гиперссылок на разные файлы, эти файлы во многих папках, но эти папки собрала в одну. Теперь мне нужно перенести рабочий файл на другой компьютер. Подскажите, пожалуйста как я могу это сделать не потеряв все гиперссылки, их более 3000. Могу ли я воспользоваться макросом который вы предлагаете? Буду очень признательна за помощь.

Да повыситься многократно твоя карма, уважаемый автор! Спасло!:)

Большое человеческое СПА-СИ-БО!
Ваш макрос здорово меня выручил.

и снова не работает, вот так у меня прописан макрос6

Sub ЗаменаИспорченныхГиперссылок()
On Error Resume Next
Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
‘ part of hyperlink, which you want to change
oldString = "AppData\Local\LocalSettings\AppData\Local\LocalSettings\Temp\"
‘ to what to change
newString = "Ok!\"
For Each sh In ActiveWorkbook.Worksheets ‘ перебираем все листы в активной книге
For Each hl In sh.Hyperlinks ‘ перебираем все гиперссылки на листе
If hl.Address Like oldString & "*" Then
hl.Address = Replace(hl.Address, oldString, newString)
End If
Next
Next sh
End Sub

более того при попытке заменить в адресах хотя бы один символ (для проверки работоспособности)например:

‘ part of hyperlink, which you want to change
oldString = "Temp\"
‘ to what to change
newString = "Ok!\"

также не срабатывает.
так же при проверке оставшейся части гиперссылок обнаружит также другие неверные адреса, а если их не 1 ни 25 ни 300, возникает проблема что и самих макросов должно быть столько же сколько и адресов которые необходимо исправить.
Есть ли вообще способ задать для всех гиперссылок один путь/адрес где хранятся все файлы?
Т.к. данная проблема может и скорее всего будет возникать постоянно при каждом переносе/дополнении/корректировках базы данных.
может есть возможность выслать сам файлик, а то вдруг я мог упустить некоторые важные детали?

Попробуйте менять ЧАСТЬ пути в гиперссылках
(пути в гиперссылках могут быть сохранены не абсолютные, а относительные, — потому замена и не выполняется)

постараюсь более детально описать процесс создания файла:
вставлены именно макросы, вставлены непосредственно т.е. -> правая кнопка -> гиперссылка -> выбор файла из архива где все добро и хранится. Первые 100 ссылок проверил на работоспособность в т.ч. с переносом папки архива на домашний компьютер, убедившись в работоспособности базы данных продолжил, а после обнаружил проблему. Гиперссылки забиты не формулами а вставкой. Найти и заменить не помогло, "не обнаружено совпадений" правильность написания проверил трижды.
Возможно что в ячейках адрес как таковой не прописан, его можно увидеть только подведя курсор к ячейке с гиперссылкой и он отображается в всплывающей подсказке, именно в ней я и увидел несоответствие фактического и прописанного адресов и вот его и нужно изменить, но в строке формулы ячейки адреса не прописаны наверное поэтому "найти и заменить" не сработало.
Макрос так же не сработал. Могу предоставить скриншоту по каждым моим действиям, может ошибка именно в последовательности

А вы уверены, что у вас на листе именно гиперссылки (синие, подчеркнутые), а не формулы, например?

Нажмите Ctrl + H (диалоговое окно поиска и замены),
в поле «Что заменять» введите AppData\Local\LocalSettings\AppData\Local\LocalSettings\Temp
в поле «На что заменять» введите Ok!
и нажмите «Заменить все»

Если это поможет, — то вам нужен другой макрос (попроще, который выполняет замены в ячейках, а не в гиперссылках):
вместо

Доброго дня! Помогите советом, до сего дня макросами не пользовался и в этой области "чайник".
Проблема следующая на рабочем компьютере создаю базу данных типовых серий (вставляю гиперссылки), скидываю по почте на домашний дорабатываю (на этом этапе гиперссылки вовсе не трогаю, добавляю примечания и прочую доп.информацию. ) скидываю обратно ч/з почту, а на работе сюрприз: большинство гиперссылок не работают. При объеме базы в 3500-5000 файлов попробуйте представить тяжесть разочарования и стресса. Выяснил что адрес сменился с
D:\Нормативно техническая база\Типовые материалы для проектирования\Типовые серии\Ok!\
например было D:\Нормативно техническая база\Типовые материалы для проектирования\Типовые серии\Ok!\0-312 в.0.djvu
стало D:\Нормативно техническая база\Типовые материалы для проектирования\Типовые серии\AppData\Local\LocalSettings\AppData\Local\LocalSettings\Temp\0-312 в.0.djvu
макрос бы помог да не выходит ничего. Пожалуйста помогите разобраться, вот как я его записал

Sub ZamenaIsporchennihGiperssilok()
On Error Resume Next
Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
‘ part of hyperlink, which you want to change
oldString = "D:\Нормативно техническая база\Типовые материалы для проектирования\Типовые серии\AppData\Local\LocalSettings\AppData\Local\LocalSettings\Temp\"
‘ to what to change
newString = "D:\Нормативно техническая база\Типовые материалы для проектирования\Типовые серии\Ok!\"
For Each sh In ActiveWorkbook.Worksheets ‘ перебираем все листы в активной книге
For Each hl In sh.Hyperlinks ‘ перебираем все гиперссылки на листе
If hl.Address Like oldString & "*" Then
hl.Address = Replace(hl.Address, oldString, newString)
End If
Next
Next sh
End Sub

Однако положительных признаков работы не подал.

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

Код один раз сработал — значит, проблема точно не в нём.
Ищите проблему в соответствии пути гиперссылок, и текст для замены в макросе.
И убирайте все красные точки (и не ставьте их впредь)

Скажите пожалуйста — скрипт сработал лишь раз. Затем почему то перестал работать. Я зашел в "Войти" в Макросах и там можно выделить все строчки красным (красная точка и красная линия), кроме Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet. На нее так же нельзя перетащить стрелку дебага. То есть я так понял скрипт стопорится на ней. Хотя 1 раз скрипт точно сработал. Я сохранил документ, затем его немного переместили, я изменил скрипт снова как надо (то есть места папок назначения) и он перестал работать.

Огромное спасибо! Очень помогло! Можно сказать, спасло от кары босса )))!

а по-моему гиперссылки и ссылки на файлы итак считаются одним и тем же. для них создана только одна кнопочка там в меню "изменение гиперссылки" слева

то есть
. создать ссылки на сайты.

>> В меню "Изменение Гиперссылки" слева есть возможность выбора:
это для того, чтобы можно было мышкой создать ссылку. а так, эти кнопки особой роли не играют.
можно при помощи этих кнопок создать ссылки на файлы, затем запустить скрипт по изменению ссылок, поменять например "http://ya.ru" на "\helloworld.txt" и при следующем открытии меню "Изменение Гиперссылки" слева будет нажата другая кнопочка

В меню "Изменение Гиперссылки" слева есть возможность выбора:
Связать с:
— файлом, веб-страницей;
— местом в документе;
— новым документом;
— электронной почтой.
Ты не ошибся.

а по-моему все ссылки одинаковые. она становится гипер или обычной просто из-за содержимого ссылки. например если начинается на "http://. " значит гипер, а если "C:\. " или "\\192.168.1.1\. " значит локальная или сетевая там.

как сделать чтобы менял обычные ссылки а не гипер ?

Вроде бы формат файла не изменился (xls) 97-2003, как был так и остался (не у всех, просматривающих, таблицу есть новый (xlsx))

Почему не работает гиперссылка в Excel

Гиперссылка – потрясающий инструмент, позволяющий создать связь информации в электронной таблице с другим файлом или данными, находящимися в интернете. Пользователь может вставлять их как в сам документ, так и определенную область диаграммы. Процедура добавления ссылки очень проста, но у некоторых пользователей возникают проблемы, когда они пытаются перейти по ним. Причем нередко они возникают внезапно: раньше все получалось сделать с первого раза, а теперь выдает ошибку. Почему так возникает? И как исправить эту ситуацию? Давайте разберемся в этом более подробно.

В чем заключается проблема?

До определенного момента все хорошо: пользователь хочет открыть ссылку, и перед ним показывается тот документ или веб-страница, которая ему нужна. Но через некоторое время при тех же действиях появляется следующее сообщение.

И эта ошибка повторяется во всех офисных приложениях, а не только Excel!

Хорошо, если действительно есть системный администратор, к которому просят обратиться. А что делать, если им являетесь вы, а вы не знаете, как решить эту проблему?

Почему не работают гиперссылки в Excel

Эта проблема связана с тем, что программа для работы с электронными таблицами не может найти тот браузер, который установлен, как предустановленный. Очень часто это происходит, когда человек пользовался Google Chrome, а потом его удалил по тем или иным причинам. Этот браузер плохо чистит реестр в процессе удаления, поэтому там остаются старые записи.

Программа по умолчанию – это такое приложение, которое открывается автоматически, когда пользователь открывает определенный тип файлов или совершает какое-то конкретное действие. В нашем случае таким типом данных является веб-страница. Когда пользователь делает клик по ссылке, она должна открываться через программу, которая называется браузером. И если он удаляется, то не всегда в реестр вносятся соответствующие изменения, связанные с удалением.

Как сделать, чтобы в Эксель открывались гиперссылки

Итак, что можно сделать для того, чтобы решить проблему с открытием гиперссылок в Excel? Первое, что нужно делать – закрыть абсолютно все офисные приложения, которые в данный момент открыты на вашем компьютере. После этого надо выполнить следующую инструкцию. Она действует применительно к Windows 7, но принцип аналогичный для любой другой версии Windows.

Почему не работает гиперссылка в Excel

  1. Нажать кнопку «Пуск».
  2. Открыть браузер, который будет использоваться по умолчанию для открытия гиперссылок. Мы будем показывать, как это работает, на примере Internet Explorer. Последовательность действий, которую нужно выполнить в других браузерах, будет отличаться. Но сам принцип не меняется.
  3. Итак, после того, как мы откроем Internet Explorer, нам нужно перейти в меню настроек (шестеренка), после чего нажать по пункту «Свойства обозревателя».
  4. После этого появится диалоговое окно с параметрами Internet Explorer. Нам нужно перейти на вкладку «Программы». Там появится опция «Веб-браузер по умолчанию». Нам нужно нажать на кнопку «Использовать по умолчанию».
  5. Подтверждаем свои действия. Для этого нужно нажать на кнопку «ОК».

Вы можете выполнять эти шаги, применительно к другому браузеру.

Например, вы случайно удалили другой браузер, после которого остались следы в реестре. Предположим, вы установили Google Chrome. В таком случае последовательность действий будет следующей:

  1. Нажимаем на три точки в правом верхнем углу. После этого переходим в меню «Настройки».
  2. После того, как мы перейдем туда, там будет раздел «Браузер по умолчанию». Там нужно сделать Google Chrome браузером по умолчанию.

Также возможно самостоятельное решение этой проблемы. Для этого нужно выполнить следующие шаги:

Почему не работает гиперссылка в Excel

  1. Нажать на меню «Пуск» и открыть блокнот (в пункте «Все программы»).
  2. Далее нужно вставить в блокнот следующий текст (это команды для добавления соответствующих ключей реестра).

REG ADD HKEY_CURRENT_USER\Software\Classes\.htm /ve /d htmlfile /F

REG ADD HKEY_CURRENT_USER\Software\Classes\.html /ve /d htmlfile /F

REG ADD HKEY_CURRENT_USER\Software\Classes\.shtml /ve /d htmlfile /F

REG ADD HKEY_CURRENT_USER\Software\Classes\.xht /ve /d htmlfile /F

REG ADD HKEY_CURRENT_USER\Software\Classes\.xhtml /ve /d htmlfile /F

Почему не работает гиперссылка в Excel

  1. Далее этот файл нужно сохранить под названием MSO_Hyperlinks.CMD. После этого блокнот можно закрыть.
  2. Это исполняемый файл, поэтому его можно запустить так же, как и любую программу. Поскольку он предусматривает добавление важных системных записей, его нужно запускать с правами администратора. Для этого нужно сделать правый клик мышью по этому файлу и нажать на кнопку «Запустить с правами администратора». Далее появится сообщение, в котором нужно записать пароль администратора, если он есть.
  3. После этого нажимаем на кнопку «Продолжить».
  4. Затем появится предупреждающее диалоговое окно, спрашивающее о том, подтверждаете ли вы изменения в реестр. Подтверждаете (кликаете на «Да»).

Теперь реестр изменен. Теперь проблема с переходом по гиперссылкам должна быть решена. Если у Вас Windows 10, то последовательность действий в целом будет похожей. Но есть еще один способ, как можно изменить настройки программ по умолчанию для того, чтобы исправить проблему с открытием ссылки через браузер.

Почему не работает гиперссылка в Excel

Самый простой способ открытия настроек программ по умолчанию Windows 10 – нажать комбинацию клавиш Win + I. Также можно открыть параметр «Приложения по умолчанию» в параметрах приложений.

Нас интересует пункт «Веб-браузер». Нажимаем на то приложение, которое установлено по умолчанию. После этого выбираем то, которое нам нужно использовать в качестве стандартного просмотрщика веб-страниц.

Почему не работает гиперссылка в Excel

Теперь проблема должна быть решена. Как видим, нет ничего сложного в решении этой ситуации. Если ссылка не открывается, то это всегда связано с тем приложением. которое не открывает ее. В крайнем случае всегда можно скопировать проблемную ссылку и вставить ее в тот браузер, который получается. Если компьютер находится во владении компании, и доступа к настройкам системного администратора нет в данный момент, а проблему надо решить срочно, то нет никакого другого варианта. Успехов.

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

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