Изменился путь для гиперссылки в excel

 

Oleksandr

Пользователь

Сообщений: 14
Регистрация: 07.09.2017

Добрый день,
есть документ exel, в нем много гиперссылок…на разные папки и документы (ссылки на жесткий диск)
после переустановки office (на ноуте переустановил Windowx 10 и повторно установил office 2019, старый документ так же был в office 2019)
обнаружил что ВСЕ гиперссылки в exek документе не работают..
проверил путь и обнаружил что путь почему-то изменился…

например, корректный путь
d:6 Cloud5 Projects3 Documentation2 ForeignIFMManualsPressure switch
а в Exel документе сейчас
C:UsersHomeAppData2 ForeignIFMManualsPressure transmitter
получается как-то изменился префикс пути….?

  • Почему это произошло?
  • Как это исправить?
  • Как обезопасить себя на будущее, от повторения такой же ситуации?

Спасибо…

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

Может просто обычной заменой (Ctrl+H)
Найти: C:UsersHomeAppData
Заменить на: d:6 Cloud5 Projects3 Documentation

или гипперссылки так не заменяются? Я просто не вкурсе

Изменено: New26.09.2020 11:52:46

 

Oleksandr

Пользователь

Сообщений: 14
Регистрация: 07.09.2017

#3

26.09.2020 12:26:17

Цитата
New написал:
или гипперссылки так не заменяются? Я просто не вкурсе

обычная замена (Ctr+H) не может искать в путях гиперссылок,
поэтому такой способ не работает…

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

Приложите пример в Excel-файле, мы подумаем.
Попробуйте макрос с этого сайта:

https://www.excel-vba.ru/chto-umeet-excel/kak-massovo-izmenit-giperssylki/

Изменено: New26.09.2020 12:29:28

 

Oleksandr

Пользователь

Сообщений: 14
Регистрация: 07.09.2017

спасибо!!! этот макрос работает…
а можно его немного изменить…чтобы не спрашивал «Укажите диапазон для замены»…чтобы по умолчанию искал во всем документе, на всех листах..

а то у меня документ с большим количеством листов…и не удобно для каждого листа указывать диапазон для замены..
в прикреплении exel Документ с «испорченными» гиперссылками…

спасибо…

 

New

Пользователь

Сообщений: 4581
Регистрация: 06.01.2013

Изменил макрос под вас. В коде прописал что менять на что. Макрос обработает в цикле все листы в книге. Макрос можно запускать на любой активной книге (главное, чтобы параллельно был открыт этот файл с макросом). Макрос запускается по Alt+F8 — Выполнить. Если надо другие пути менять, то измените в коде макроса текст что менять и на что менять (просмотреть изменить макрос можно по Alt+F11)

Изменено: New26.09.2020 15:15:15

 

Oleksandr

Пользователь

Сообщений: 14
Регистрация: 07.09.2017

#7

26.09.2020 15:41:52

СПАСИБО!!! все работает…все ссылки изменились на корректные.
Но как Вы думаете в чем причина этого сбоя? почему exel сам поменял пути гиперссылок?

Хитрости »

30 Май 2011              156272 просмотров


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

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

Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками — Что такое гиперссылка?) на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки .excel_vba на текст excel-vba.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА(HYPERLINK), то все просто:

  1. выделяем диапазон с гиперссылками;
  2. жмем Ctrl+H.
    • Найти: .excel_vba
    • Заменить на: excel-vba
    • Жмем кнопочку «Параметры» и устанавливаем Область поискаФормулы и снимаем галочку «Ячейка целиком«
  3. Жмем «Заменить все«

Теперь адреса ссылок должны поменяться.
Все гораздо сложнее, если гиперссылки были созданы через стандартное меню: правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через Ctrl+H не пройдет. В таких случаях придется прибегнуть к помощи VBA(Visual Basic for Applications) или как еще называют эти коды — макросы. Текст такого макроса:

Sub Replace_Hyperlink()
    Dim rCell As Range, rRange As Range, sWhatRep As String, sRep As String
    On Error Resume Next
    Set rRange = Application.InputBox("Укажите диапазон для замены", "Выбор данных", Type:=8)
    If rRange Is Nothing Then Exit Sub
    sWhatRep = InputBox("Что меняем?", "Ввод данных", ".excel_vba")
    sRep = InputBox("На что меняем?", "Ввод данных", "excel-vba")
    If sWhatRep = "" Then Exit Sub
    If sRep = "" Then
        If MsgBox("Хотите заменить " & sWhatRep & " на пусто?", vbCritical + vbYesNo, "Предупреждение") = vbNo Then Exit Sub
    End If
    Application.ScreenUpdating = 0
    For Each rCell In rRange
        If rCell.Hyperlinks.Count > 0 Then
            If rCell.Hyperlinks(1).Address = rCell.Value Then
                rCell = Replace(rCell.Value, sWhatRep, sRep)
            End If
            If rCell.Hyperlinks(1).Address <> "" Then
                rCell.Hyperlinks(1).Address = Replace(rCell.Hyperlinks(1).Address, sWhatRep, sRep)
            End If
            If rCell.Hyperlinks(1).SubAddress <> "" Then
                rCell.Hyperlinks(1).SubAddress = Replace(rCell.Hyperlinks(1).SubAddress, sWhatRep, sRep)
            End If
        End If
    Next rCell
    Application.ScreenUpdating = 1
End Sub

Как все это использовать:

  • создаем стандартный модуль и помещаем в него код макроса выше
  • жмем Alt+F11 и выбираем макрос Replace_Hyperlink (или создаем кнопку для вызова макроса на листе)
  • в первом диалоговом окне указываем в каком диапазоне надо найти гиперссылки и заменить в них адрес
  • во втором диалоговом окне указываем какой текст заменить
  • в третьем диалоговом окне указываем на что заменить указанный в первом окне текст

Примерно так же можно заменить гиперссылки в объектах на листе(например, картинках и кнопках):

Sub Replace_Hyperlink_inShape()
    Dim oSh As Shape, sWhatRep As String, sRep As String
    Dim s As String
 
    sWhatRep = InputBox("Что меняем?", "Ввод данных", "www.excel-vba.com")
    sRep = InputBox("На что меняем?", "Ввод данных", "www.excel-vba.ru")
 
    On Error Resume Next
    For Each oSh In ActiveSheet.Shapes
        s = ""
        s = oSh.Hyperlink.Address
        If s <> "" Then
            oSh.Hyperlink.Address = Replace(oSh.Hyperlink.Address, sWhatRep, sRep)
        End If
    Next
End Sub

Данные код работает почти так же как и предыдущий:

  • создаем стандартный модуль и помещаем в него код макроса выше
  • жмем Alt+F11 и выбираем макрос Replace_Hyperlink_inShape (или создаем кнопку для вызова макроса на листе)
  • в первом диалоговом окне указываем какой текст заменить
  • во втором диалоговом окне на что заменить указанный в первом окне текст

Гиперссылки всех объектов на листе будут изменены. Если у объекта нет гиперссылки — объект будет пропущен.

 
Чтобы

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

необходимо строку

For Each oSh In ActiveSheet.Shapes

заменить на такую:

For Each oSh In Selection.ShapeRange

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

Скачать пример

  Пример замены гиперссылок.xls (58,0 KiB, 11 337 скачиваний)

Так же см.:
Что такое гиперссылка?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

  • Remove From My Forums
  • Общие обсуждения

  • Здравствуйте.

    Имеется Microsoft Office 2010 Standart. При работе в Excel по неустановленным причинам на нескольких компьютерах сети в различных файлах произвольным образом изменяется путь гиперрсылки с \srv.domain.localshare1.pdf на C:UsersuserAppDataRoamingMicrosoftExcelshare1.pdf.

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

    Прошу помощи в решении проблемы.

    Спасибо

    • Изменен тип

      17 мая 2013 г. 13:28

Excel для Microsoft 365 Word для Microsoft 365 Excel 2019 Word 2019 Excel 2016 Word 2016 Excel 2013 Word 2013 Excel 2010 Word 2010 Еще…Меньше

Примечание: 
Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим
ссылку на оригинал (на английском языке)
.

Если вы используете автоматического создания гиперссылок и Word или Excel отображается только часть пути, вы можете изменить параметры, чтобы отображался полный путь гиперссылки.

  1. Щелкните Файл > Параметры > Дополнительно.

  2. Перейдите к разделу Общие и нажмите кнопку Параметры веб-документа > файлы.

  3. Снимите флажок обновлять ссылки при сохранении.

Дополнительные сведения

Создание и изменение гиперссылок

Нужна дополнительная помощь?

  • Remove From My Forums
  • Question

  • All the Excel network links created in 2007/2003 change c:… when open up in Excel 2010. It is impossible to update them all manually as we have 10000+ files each contains
    10000000000 links +.

     The file and links work ok from a Windows XP machine with Excel 2007.

     For example:

     G:FinanceFinance Drive — RestructuredReportingFY10 is replaced by C:UsersnsapalaAppDataRoamingMicrosoftExcelXLSTART

    We have changed the startup location but it didn’t seem to fix the issue.

    Help Please!!!..Questions or ideas very much welcome.

    • Edited by

      Thursday, August 26, 2010 7:31 PM

Answers

  • Hello,

    I created a source file in 2007, saved it to a mapped drive.  I then created a destination file in 2007 that does a vlookup to the source file.  saved and closed both so the destination vlookup has the mapped drive in the vlookup formula.

    I then opened the destination file in Excel 2010, and it retained the correct path, and when I enabled external links, it updated properly. 

    I don’t know of any issues with linking, nor any changes to linking functionality in Excel 2010.  I pinged some of my peers and the concurred that the only way we know of that this kind of thing could happen is if the file was opened from a local cache
    location, such as from an email attachment or from a browser.

    Other things that you can look for are third party addins that interact with Excel, both Excel addins and COM addins.

    Also, be sure to take a look at several files, including making sure that you check files that you are absolutely certain have not been previously opened in the new version.

    I hope this helps. If you need further assistance on this, please open a support case with us. You can review assisted support options here:

    http://support.microsoft.com/select/Default.aspx?target=assistance

    Thanks,

    Wendal Dorsey, MSFT

    • Marked as answer by
      Wendal DorseyEditor
      Thursday, September 2, 2010 9:04 PM

Понравилась статья? Поделить с друзьями:
  • Изменился значок документа word
  • Изменился значок word на рабочем столе
  • Изменился вид ссылок в excel
  • Изменилось имя ячейки в excel
  • Изменились шрифты в word