Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2011, 13:31   #1
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию как массово изменить гиперссылки?

долго гуглил, на каком-то форуме 2 года назад чел выложил макросы на zalil.ru и естесственно - щас их нет...

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

Код:
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("Что меняем?", "Ввод данных", "C:\Documents and Settings")
    sRep = InputBox("На что меняем?", "Ввод данных", "\\Dc2k\common\_ипотека\ипотека\пролонгация")
    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
            rCell.Hyperlinks(1).Address = Replace(rCell.Hyperlinks(1).Address, sWhatRep, sRep)
        End If
    Next rCell
    Application.ScreenUpdating = 1
End Sub
1o1man вне форума Ответить с цитированием
Старый 20.10.2011, 14:18   #2
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Можно взглянуть на пример ссылок?
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 20.10.2011, 14:26   #3
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

сейчас ссылки вида

../../ИнтехБанк/2006%20ГОД/Сентябрь/ИАРТ%20Хасаншины%201-2-120
../../Ак%20Барс%20Банк/2008/Сентябрь/Кремль/Махмутов1%20Кремль
вот вместо
../../ должно быть //Dc2kazan/common/_ипотека/ипотека/
1o1man вне форума Ответить с цитированием
Старый 20.10.2011, 14:39   #4
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Где расположены эти ссылки?
Подряд?
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 20.10.2011, 14:44   #5
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

да, ссылки подряд, столбиком

http://img638.imageshack.us/img638/4596/unled1ad.gif
1o1man вне форума Ответить с цитированием
Старый 20.10.2011, 14:45   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
долго гуглил
И не наткнулись на этот макрос для исправления гиперссылок?
Или он не помог вам?
EducatedFool вне форума Ответить с цитированием
Старый 20.10.2011, 14:50   #7
Watcher_1
Форумчанин
 
Аватар для Watcher_1
 
Регистрация: 22.06.2011
Сообщений: 325
По умолчанию

Держите
Подразумевается что ссылки в столбце А
Код:
Sub m()
     For i = 1 To Range("A1").End(xlDown).Row
      myTmp = Range("A" & i).Hyperlinks.Item(1).Name
      myTmp = Replace(myTmp, "../../", "//Dc2kazan/common/_ипотека/ипотека/")
      Range("A" & i).Hyperlinks(1).Address = myTmp
     Next
End Sub
Заказать макрос можно на сайте http://excel4you.ru/
Watcher_1 вне форума Ответить с цитированием
Старый 20.10.2011, 14:54   #8
Пименов Александр
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 222
По умолчанию

http://img638.imageshack.us/img638/4596/unled1ad.gif фиговая,пришлите либо текст ссылок, либо образец файла.......
Пименов Александр вне форума Ответить с цитированием
Старый 20.10.2011, 15:01   #9
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
По умолчанию

приложил данный файл

загвоздка в том, что когда навожу на ссылку мышкой, всплывает ссылка такая
"c:\doc and settings\ИнтехБанк/2006%20ГОД/Сентябрь/ИАРТ%20Хасаншины%201-2-120"
а когда жму изменить ссылку, вылезает ../../ИнтехБанк/2006%20ГОД/Сентябрь/ИАРТ%20Хасаншины%201-2-120
Вложения
Тип файла: rar links.rar (44.5 Кб, 18 просмотров)
1o1man вне форума Ответить с цитированием
Старый 20.10.2011, 15:06   #10
1o1man
Пользователь
 
Регистрация: 09.12.2007
Сообщений: 49
Печаль

Цитата:
Сообщение от Watcher_1 Посмотреть сообщение
Держите
Подразумевается что ссылки в столбце А
Код:
Sub m()
     For i = 1 To Range("A1").End(xlDown).Row
      myTmp = Range("A" & i).Hyperlinks.Item(1).Name
      myTmp = Replace(myTmp, "../../", "//Dc2kazan/common/_ипотека/ипотека/")
      Range("A" & i).Hyperlinks(1).Address = myTmp
     Next
End Sub
может у меня руки кривые, но не сработало =(
скопировал столбец в новый файл, запустил макрос- кукиш. как было так и осталось =((
1o1man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить гиперссылки? burunduk_ Microsoft Office Access 10 10.04.2013 19:39
Как у столбца удалить гиперссылки? Smile2007 Microsoft Office Excel 2 09.12.2010 11:32
гиперссылки как описать нумерацию страниц sttasy HTML и CSS 1 01.04.2010 10:23
Знак абзаца, как удалить массово? SoFuWa Microsoft Office Word 3 21.02.2010 21:03
Как изменить стиль гиперссылки? Нужно убрать рамку вокруг картинки. GLB HTML и CSS 5 18.01.2009 19:18