Страницы: 1 2 След.
RSS
как изменить расположение гипперсылок если произошел сбой?, изменение расположения гипперсылок
 
Здравствуйте, проблема такого рода, произошел сбой в системе и эксель сохранил файл :   ..\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\AppData\Roa­ming\Microsoft\Excel
и изменил адрес всех гипперсылок, соответственно они теперь не открываются ... пример изменения:    ..\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\AppData\Roa­ming\Microsoft\Excel\фото\Жовтнева%20СР\IMG_20180716_142739.jpg
до этого был такой :  C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР\IMG_20180716_142739.jpg
Большое кол-во гипперсылок с разными папками и фотографиями, как вернуть пути обратно ?
 
denya83, рв ручную через ctrl+H найти что стало и заменить на то что было?!
Не бойтесь совершенства. Вам его не достичь.
 
Здравствуйте.
Если названия исходных папок сохранились (в Вашем примере - это куски "...\фото\Жовтнева%20СР\IMG_20180716_142739.jpg"), то можно макросом, поиск-замена.
Т.е. заменить ненужный кусок пути к папкам на нужный (старый).
Если не сохранились, то откуда узнать, что на что менять?
Изменено: Михаил Лебедев - 10.09.2018 11:00:29
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
a.i.mershik не реально в ручную править более 10 000 строк
Михаил Лебедев из примера видно, что понимание есть как эксель поменял путь
все адреса верны к гипперсылкам если убрать знаки " %" (пример : Жовтнева%20СР)   в названии папки
и путь "..\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\AppData\Roa­­ming\Microsoft\Excel
поменять на путь C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР\IMG_20180716_142739.jpg
но у разных гипперсылок может меняться папка "Жовтнева СР" на другую и другая фотка а так путь одинаковый
пример такого рода чтобы нагляднее :

Пример 1 путь гипперсылки
было C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР\IMG_20180716_142739.jpg
стало .\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\AppData\Roa­­ming\Microsoft\Excel\фото\Жовтнева%20СР\IMG_20180716_142739­.jpg

Пример2. путь гипперссылки
было: C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Коханівська\IMG_20180612_113810.jpg
стало: ..\..\AppData\Roaming\AppData\Roaming\Microsoft\Excel\фото\Кохані­вська\IMG_20180612_113810.jpg

но как это поменять обратно массово?
 
denya83, а у вас эти ссылки к чему то привязаны (может в таблице какой-то участвуют) или может проще с помощью макроса сделать новые ссылки на все файлы в папке?
вот отличный макрос https://www.planetaexcel.ru/techniques/3/45/
а потом можно по имени файла сделать замену как нибудь )
Изменено: a.i.mershik - 10.09.2018 11:55:12
Не бойтесь совершенства. Вам его не достичь.
 
да таблица , фотографии к гиперссылке привязывались вручную , так как надо было найти на карте где сфотографировано,  и потом в ячейке создавалась гиперссылка на это фото
 
Цитата
denya83 написал:
если убрать знаки " %" (пример : Жовтнева%20СР)
1. Ппо-моему, %20 можно и не убирать, это аналог пробела. Но если есть необходимость - можно просто подставновкой.
2. Если я правильно понял, - Вам нужно везде поменять
.\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\AppData\Roa­­­ming\Microsoft\Excel\
на
C:\Users\Derek\Desktop\ВРОЖАЙ 2018

Это можно сделать с пом. небольшого макроса.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Михаил Лебедев , нужно поменять ..\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\Microsoft\E­xcel\фото\Жовтнева%20СР
на C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР
если оставлять "%20" то открываться не будет, проверено
Изменено: denya83 - 10.09.2018 12:37:25
 
Ваши 2 последних - у меня отображаются в виде абракадабры.
Вот макрос ▼
Код
Sub hl()
    Dim str1 As String, str2 As String, str3 As String
    Dim rng As Range
    Dim rng1 As Range
    Set rng = Application.InputBox("Выделите блок ячеек для поиска-замены", "ГДЕ ИЩЕМ?", , , , , , 8 )
    str1 = InputBox("Введите искомый текст", "ЧТО ИЩЕМ?")
    str2 = InputBox("Введите текст на замену", "НА ЧТО МЕНЯЕМ?")
    For Each rng1 In rng
        str3 = rng.Hyperlinks(1).Address
        rng.Hyperlinks(1).Address = VBA.Replace(str3, str1, str2)
    Next
End Sub
Скопируйте в модуль книги и запустите, находясь на листе, где надо сделать замену.
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
denya83 написал:
если оставлять "%20" то открываться не будет
тогда добавьте еще строку
Код
str3 = VBA.Replace(str3, "%20", " ") 

после строки "9" кода
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
это малая часть файла как пример , так как весь файл не загружается весит много
 
denya83, рисунок нужно не вставлять, а прикреплять файлом.
 
я извиняюсь, но не понимаю куда скопировать, где находится модуль ?
 
Цитата
Михаил Лебедев написал:
Михаил Лебедев
из этого мне не понятно "Выделите блок ячеек для поиска-замены" - мне нужно указать колонку в которой гиперссылки ?
"ГДЕ ИЩЕМ" снова указывать колонку в которой искать ?
"Введите искомый текст" - указываю неправильный путь ?
"ЧТО ИЩЕМ?" - снова указываю неправильный путь ?
"Введите текст на замену" - указываю правильный путь ?
"НА ЧТО МЕНЯЕМ?" - снова  указываю правильный путь ?
 
Здесь выкладывал нечто аналогичное прям под задачу. Отдельно есть код для замены гиперссылок в объектах:
Как массово изменить гиперссылки?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
часть пути может  поменять  не изменяя конечное название файла?
 
Цитата
denya83 написал:
часть пути может  поменять
именно это и делает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
denya83, Вы задали вопрос. А прежде чем его задавать - Вы проверить не могли?
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
именно это и делает.
не помогает, не хочет пути исправлять, но если я указываю исправить одно слово то пожалуйста
в чем проблема может быть ?
Цитата
Юрий М написал:
denya83 , Вы задали вопрос. А прежде чем его задавать - Вы проверить не могли?
я читал но не смог разобраться там вначале, поэтому создал новую тему
 
Ребята, помогите разобраться файл как пример я кинул, попробуйте применить
у меня не получается
 
Цитата
denya83 написал:
я читал но не смог разобраться
Да причём тут читал-не читал? Я Вам говорю о том, что могли бы и не задавать вопрос (#16), а самостоятельно проверить - изменяется или нет конечное название файла.
 
Цитата
Юрий М написал:
Да причём тут читал-не читал? Я Вам говорю о том, что могли бы и не задавать вопрос (#16), а самостоятельно проверить - изменяется или нет конечное название файла
Мне не нужно изменять конечное имя файла, как раз его мне нужно оставить а поменять к нему путь!!!! Я же уже все на примерах показал, посмотрите внимательнее!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
denya83, не кричите на меня,  а лучше внимательно перечитайте мои сообщения. Смысл их в том, что Вы задаёте вопрос, ответ который могли бы проверить сами. Так понятно?
 
Цитата
Юрий М написал:
denya83 , не кричите на меня,  а лучше внимательно перечитайте мои сообщения. Смысл их в том, что Вы задаёте вопрос, ответ который могли бы проверить сами. Так понятно?
я на вас не кричу, я пробывал у меня не получалась, я решил переспросить, может я чего то не правильно делаю, потому и спросил.
Вместо кучи переписи с объяснениями, помогли бы лучше  разобраться с данной проблемой, куда эффективнее было бы, и решился вопрос быстрее и закрыли бы тему
 
Не кричите? А зачем эту куча восклицательных знаков? Если бы сразу внимательно читали, о чём я пишу - не было бы этой "кучи переписки".
 
Цитата
denya83 написал:
Я же уже все на примерах показал
что Вы показали? Что вбиваете в качестве искомого и что в качестве замены? Покажите. Например, в качестве искомого указывается:
..\..\AppData\Roaming\AppData\Roaming\AppData\Roaming\AppData\Roa­­ming\Microsoft\Excel\фото\Жовтнева%20СР\
а для замены:
C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР\
Но есть у меня подозрения относительно того, что путь с точками соответствует тому, что видит VBA. Выделите любую ячейку с "кривой" гиперссылкой и выполнить макрос:
Код
Sub GeHypAddress()
    MsgBox "Address: " & ActiveCell.Hyperlinks(1).Address & vbNewLine & "SubAddress: " & ActiveCell.Hyperlinks(1).Address
End Sub
И посмотрите, что покажет MsgBox. Думаю, что там либо будет что-то лишнее, либо чего-то будет не хватать
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Попробуйте записать две строки так:
Код
    sWhatRep = InputBox("Что меняем?", "Ввод данных", "../../AppData/Roaming/AppData/Roaming/AppData/Roaming/AppData/Roaming/Microsoft/Excel/фото/Жовтнева СР/")
    sRep = InputBox("На что меняем?", "Ввод данных", "C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР\")
останется только запустить приведенный мной код из статьи и проверить результат.
Код
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("Что меняем?", "Ввод данных", "../../AppData/Roaming/AppData/Roaming/AppData/Roaming/AppData/Roaming/Microsoft/Excel/фото/Жовтнева СР/")
    sRep = InputBox("На что меняем?", "Ввод данных", "C:\Users\Derek\Desktop\ВРОЖАЙ 2018\фото\Жовтнева СР\")
    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)
            Else
                rCell.Hyperlinks(1).SubAddress = Replace(rCell.Hyperlinks(1).SubAddress, sWhatRep, sRep)
            End If
        End If
    Next rCell
    Application.ScreenUpdating = 1
End Sub
Изменено: Дмитрий(The_Prist) Щербаков - 10.09.2018 17:11:48
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
И посмотрите, что покажет MsgBox. Думаю, что там либо будет что-то лишнее, либо чего-то будет не хватать
Показывает следующее, посмотрите в скрине  
 
Выше показал решение. А Вы должны увидеть, что нет никаких %20 вместо пробелов.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
Выше показал решение. А Вы должны увидеть, что нет никаких %20 вместо пробелов.
все сделал как вы выше указали, все осталось также, только при вводе строки они были заполнены
и ничего не происходит .......... все также как и вручную ввод.... не меняет
Страницы: 1 2 След.
Наверх