Страницы: 1
RSS
Сбой в гиперссылке после экстренного закрытия или глюка эксель
 
Здравствуйте!

После очередного глюка эксель, у меня сбились все гиперссылки.
Раньше мне помог один раз вот такой макрос (Образец)
Код
 Sub ЗаменаИспорченныхГиперссылок()
    On Error Resume Next
    Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
    ' часть гиперссылки, подлежащая замене
    oldString = "C:\Users\sidorova_d\AppData\Local\Microsoft\Office\UnsavedFiles\Оплаты клиентов\Платёжки.xlsm"
    ' на что заменяем  
    newString = "Оплаты клиентов\Платёжки.xlsm"
    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 

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

а когда нажимаю изменить гиперссылку , то выдаёт такой путь
..\..\AppData\Local\Microsoft\Office\UnsavedFiles\Оплаты%20клиент­­ов\Платёжки.xlsm#Дескформ!R1C1

Если же делаю руками гиперссылку правильную , то выходит вот такой путь -Оплаты%20клиентов\Платёжки.xlsm#Дескформ!R1C1.
А если навожу на неё, то такой

Как сделать, что бы вот эта часть менялась ..\..\AppData\Local\Microsoft\Office\UnsavedFiles\Оплаты%20клиент­­ов\Платёжки.xlsm
на Оплаты%20клиентов\Платёжки.xlsm
Всё делаю так, но ничего не происходит.

P.S  - #Дескформ!R1C1  эта часть - вкладка из экселевского документа . Она будет в зависимости от клиента меняться, поэтому её не меняем.
Изменено: Selver - 16.07.2019 15:12:48
 
Попробуйте открыть файл и "сохранить как..." его по нужному Вам адресу.

...и о замечании об оформлении кода не забудьте, плз
Изменено: Ёк-Мок - 16.07.2019 14:32:35
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Не помогло ( Как код оформить? Не пойму, я тут новичок))
Изменено: Selver - 16.07.2019 14:36:38
 
офф
Оформите, плз, код в Вашем сообщении в начале этой темы. А то мне Вам никак не помочь пока вы нарушитель форума (модератор сделал Вам замечание)
Изменено: Ёк-Мок - 16.07.2019 14:42:48
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Можете выложить тут или на мою почту (указана в профиле) проблемный файл?
Удивление есть начало познания © Surprise me!
И да пребудет с нами сила ВПР.
 
Фаил прикрепил, я его конечно подчистил от своей информации)) Оставил столбец с гиперссылкой, которая переключает на вкладки другого экселя. Там где выделил оранжевым , эти гиперссылки я уже изменил в ручную и они работают, остальные косячные.
Фаил больше весит чем, нужно. Отправлю на почту.
Изменено: Selver - 16.07.2019 14:54:38
 

Опишу свои действия
Нажимаю на изменить гиперссылку, копирую от туда ту часть , которую хочу заменить
Целая часть выглядит так
../../AppData/Local/Microsoft/Office/UnsavedFiles/Оплаты%20клиент­ов/Платёжки.xlsm#Грицай!R1C1
Заменить нужно
../../AppData/Local/
Microsoft/Office/UnsavedFiles/Оплаты%20клиентов/Платёжки.xlsm
Далее та часть, на которую меняем , если скопировать из работающих, то выглядит так Оплаты%20клиентов\Платёжки.xlsm#Вимком!R1C1
Соответственно копирую
Оплаты%20клиентов\Платёжки.xlsm
Запускаю и ничего не заменяется.
Если навести мышку на гиперссылку то там другой путь, скриншоты прикреплял в 1 посте.
Если же я просто в каждую гиперссылку проваливаюсь и вставляю эту часть
Оплаты%20клиентов\Платёжки.xlsm   ( далее идёт #Вимком!R1C1  и тд. в зависимости от вкладки)
То всё работает, а через макрос не заменяет. Вот и не пойму в чём же дело. Хотя ранее было уже такое и всё получилось сразу.
Изменено: Selver - 17.07.2019 09:26:39
 
Проблема так и не решена =(
 
Приведите в порядок предыдущее свое сообщение.  Каждое предложение отдельно,  после каждого пустота...
Страницы: 1
Наверх