Изменение всех гиперссылок в excel

Хитрости »

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


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

В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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
ссылки
статистика

Всем привет! Как-то на работе столкнулся на работе с интересной задачей. Во время работе Excel выдал ошибку и закрыл окно. После попытки открыть файла оказалось, что все гиперссылки в документе изменили часть своего пути.

Решение

  1. Открываем VBA (Visual Basic for Applications) через Alt+F11
  2. В окне Project-VBAProject (левой верхнее) правой кнопкой мыши делаем Insert — Module
  3. В появившемся большом окне вставляем код макроса вида с нашими ссылками (первая ссылка — что нужно поменять, вторая — на что нужно поменять)
Sub Hyper()
For i = 1 To ActiveSheet.Hyperlinks.Count
    ActiveSheet.Hyperlinks(i).Address = Replace(ActiveSheet.Hyperlinks(i).Address, "../../../AppData/Roaming/Microsoft/Excel/", "UsersUserDesktopФирмаДоговора")
Next
End Sub

      4. Закрываем VBA.

       5. Через Сервис — Макрос — Макросы ( или по Alt+F8) выбираем макрос и нажимаем «Выполнить».

Пути гиперссылкок будут заменены. Проверено — работает!

Спасибо за помощь http://forum.ixbt.com/topic.cgi?id=23:33826

Posted in WINDOWS and tagged excel.

Qairat

Qairat

@Qairat

frontend developer, angular 2+

Всем Привет!
Такая ситуация. Есть такой файл:
3435c9b13c3c427095e62dcef46e96f6.JPG
И везде на гипперссылках написано слово parsing/Licenses/Details/и свое значение.
d706d3e891f64af4b71413c5d556bf44.JPG
Теперь мне надо поменять там слово parsing на другое слово.
Как можно сделать сразу везде?
Помогите.
Там более 20 тысяч строк.


  • Вопрос задан

    более трёх лет назад

  • 2263 просмотра

Alt+F11

Sub FixLinks()
    Dim hLink As Hyperlink
    Dim sOld As String
    Dim sNew As String

    sOld = "http://parsing"
    sNew = "http://newsite"
    
    For Each hLink In ActiveSheet.Hyperlinks
        hLink.Address = Replace(hLink.Address, sOld, sNew)
    Next hLink
End Sub

выполнить

Пригласить эксперта


  • Показать ещё
    Загружается…

15 апр. 2023, в 13:55

55000 руб./за проект

15 апр. 2023, в 13:45

1000 руб./за проект

15 апр. 2023, в 13:28

500 руб./за проект

Минуточку внимания

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

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

  1. выделяем диапазон с гиперссылками;
  2. жмем Ctrl+H.
    • Найти: <f-с1>.excel_vba</f-с1>
    • Заменить на: <f-с2>excel-vba</f-с2>
    • Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка целиком«
  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, 8 817 скачиваний)

За материал поклон Дмитрию: https://www.excel-vba.ru/chto-umeet-excel/kak-massovo-izmenit-giperssylki/

Join @AdmNtsRu on Telegram

Смотрите также:

 

Kazakoff

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

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

Доброе время суток!
У меня такая проблема:
Есть два файла, один основной(1), другой второстепенный(2). Оба находятся в одной папке. Каждая ячейка в файле 1 имеет гиперссылку на определенную ячейку в файле 2 и также обратно, для возвращения в основной файл.
В файле 1 гиперссылки не имели полного адреса расположения файла 2 в сетевой папке, что давало возможность копировать папку с обоими файлами, допустим, на флешку, и не ломая гиперссылки. Фактически адрес ссылки выглядел так: «Файл 2.xlsm#’Имя Листа’!Номер ячейки»
Сейчас на сетевом ресурсе что-то произошло, и в гиперссылках появились лишние адреса. В итоге всё начало выглядить так: /../../../Папка/Папка/»Файл 2.xlsm#’Имя Листа’!Номер ячейки». Можно ли при помощи какого-либо макроса удалить часть адреса гиперссылки, ну или заменить на пустоту сразу во всех гиперссылках документа?Их больше тысячи. Хэлп ми!!!

 

tgoring

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

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

#2

19.06.2014 14:30:53

Ссылки все на одном листе?

Код
Sub FixHyperlinks()
    Dim wks As Worksheet
    Dim hl As Hyperlink
    Dim sOld As String
    Dim sNew As String

    Set wks = ActiveSheet
    sOld = "c:" 
    sNew = "S:Network"
    For Each hl In wks.Hyperlinks
        hl.Address = Replace(hl.Address, sOld, sNew)
    Next hl
End Sub 

Изменить нужно то, что в кавычках.

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Kazakoff

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

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

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

 

Kazakoff

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

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

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

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

Т.е. попробовать лень? Код принимает в качестве аргумента не полный адрес — а часть. Как раз первую часть ссылок(одинаковую) указываете. Если надо удалить — в качестве заменяемого адреса пусто.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Kazakoff

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

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

#7

19.06.2014 17:45:19

The_Prist, не думаю, что я ленивый человек. Пробовал я много чего. К примеру:

Код
Sub test2()
On Error Resume Next
Dim hl As Hyperlink, s As String, sh As Worksheet
s = "../../../../Maintenance/Транспортная%20сеть/Транспортная%20сеть/" ' часть гиперссылки, подлежащая удалению
For Each sh In ActiveWorkbook.Worksheets
For Each hl In sh.Hyperlinks
If hl.Address Like s & "*" Then hl.Address = Replace(hl.Address, s, ""  
Next
Next sh
End Sub 

комп думает три секунды и…..ничего не меняется

 

vikttur

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

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

Кнопка для форматирования кода в сообщении

 

Finswimmer

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

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

#9

19.06.2014 17:49:07

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

Код
With ActiveSheet
    For i = 1 To .Hyperlinks.Count
            .Hyperlinks(i).Range.Offset(0, 1).Value = .Hyperlinks(i).Address
      Next i
End With 
 

Kazakoff

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

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

#10

19.06.2014 17:49:56

Спасибо vikttur, ,

Код
Sub test2()
    On Error Resume Next
    Dim hl As Hyperlink, s As String, sh As Worksheet
    s = "../../../../COMMON/TDMaintenance/Транспортная%20сеть/Транспортная%20сеть/" ' часть гиперссылки, подлежащая удалению
    For Each sh In ActiveWorkbook.Worksheets
        For Each hl In sh.Hyperlinks
            If hl.Address Like s & "*" Then hl.Address = Replace(hl.Address, s, "")
        Next
    Next sh
End Sub

 
 

Kazakoff

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

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

#11

19.06.2014 17:53:10

пробовал также:

Код
Sub ЗаменаИспорченныхГиперссылок()
    On Error Resume Next
    Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
    ' часть гиперссылки, подлежащая замене
   oldString = "../../../../COMMON/TDMaintenance/Транспортная%20сеть/Транспортная%20сеть/"
    ' на что заменяем
   newString = ""
    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

не хочет работать и все тут. Я уже и в параметрах безопасности макросам все разрешил…

 
 

Игорь

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

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

Кросс:

http://programmersforum.ru/showthread.php?t=262907Kazakoff

, нет файла — нет помощи
Я же просил с вас файл с ОДНОЙ гиперссылкой
неужто пустой файл, содержащий ОДНУ проблемную гиперссылку, может быть секретным?

 

Kazakoff

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

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

я прошу прощения.

вот

создал пример, там должен быть макрос test2. Может я чего не догоняю, но он не срабатывает.

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

Попробовал заменить «……..COMMONTDMaintenanceТранспортная сетьТранспортная сеть» на пусто своим кодом — все заменилось, никаких проблем. И код в книге работает.
Одно не пойму — зачем Вы знаки «%20» добавили в адреса для замены? Их ведь нет в гиперссылках изначально. Может поэтому не работает? А Вы все проблемы на нормальные коды валите?

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Kazakoff

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

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

программа сама почему-то заменила все пробелы на «%20»

 

The_Prist

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

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

Профессиональная разработка приложений для MS Office

Какая такая программа?
Попробуйте для своих ячеек посмотреть адреса гиперссылок и как они выглядят реально:

  • Как получить адрес гиперссылки из ячейки

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Kazakoff

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

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

The_Prist,большущее Вам спасибо, поставили меня на правильный путь!!! %20 — это эксель так заменил все пробелы в ссылках. и я тупо копировал путь из ссылки в макрос с процентами, убрал и все получилось. Спасибо, что потратили на меня время!!

 

4vaker

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

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

#19

20.08.2014 20:05:03

Добрый вечер!
А вот в книге с кучей таких формул возможно поменять середину?

Код
=ЕСЛИ((Extract_Value_ADO_Sh("\udc10SvodkaНачальник НГДУ20148 июльДобыча";$K$3;"Доб.по ДНС";"B14"))="";"";(Extract_Value_ADO_Sh("\udc10SvodkaНачальник НГДУ20148 июльДобыча";$K$3;"Доб.по ДНС";"B14")))
 

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

 

а через обычную замену Ctrl-H по части формулы — не работает?

 

4vaker

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

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

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

 

зачем жать Enter, если есть кнопка «заменить все»?

 

4vaker

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

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

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

 

как же мне было понять, если вы об этом не говорили?
А чем будет отличаться выбор диапазона на листе от выбора диапазона в макросе? Жесткой заданностью? или критерием каким-то?
Ну, каков файл примера — таково и решение.

 

4vaker

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

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

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

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

4vaker, формируйте пути через сцепку текстовых констант с переменной частью. Конкретней не скажу. В примере не показано что есть, а что надо получить. Хотя прочтение правил сэкономило бы Ваше время и время помогающих. ДобРа.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

4vaker

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

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

Нужно из столба «Е» сделать столб «Х».

 

JayBhagavan

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

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

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#28

21.08.2014 11:01:10

Замените:

Код
"\usndc10SvodkaНачальник НГДУ20148 сентябрьДобыча ТПП"

на

Код
"\usndc10SvodkaНачальник НГДУ20148 "&строчн(ТЕКСТ(X$3;"ММММ"))&"Добыча ТПП"

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

Максим Зеленский

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

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

Microsoft MVP

#29

21.08.2014 11:38:37

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

Код
sWhatRep = InputBox("Что меняем?", "Ввод данных", """" & "\usndc10SvodkaНачальник НГДУ20148 августДобыча ТПП" & """" & ";$K$3;" & """Доб.по ДНС""" & ";" & """B14""")
sRep = InputBox("На что меняем?", "Ввод данных", """" & "\usndc10SvodkaНачальник НГДУ20148 декабрьДобыча ТПП" & """" & ";$K$3;" & """Доб.по ДНС""" & ";" & """B14""")

только макрос ничего не меняет, так как нет гиперссылок в ячейках.

PS

F1 творит чудеса

 

4vaker

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

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

#30

21.08.2014 13:00:39

Кажется я не с того начал. Значит давайте сначала.
Самый простой способ казалось бы ctrl+H у меня НЕ РАБОТАЕТ, поэтому я к вам и обратился.
Допустим я копирую десять ячеек из одного столба в другой, выделяю скопированные ячейки, жму ctrl+h, делаю всё по инструкции, если жать «заменить», то каждую из десяти ячеек он мне предлагает заменить, соответственно необходимо нажимать 10 раз энтер — это фуфло если у меня 200 ячеек, понятно. Если я жму «ЗАМЕНИТЬ ВСЕ», то плевать, что я выделил эти 10 ячеек, он меняет ПОЛНОСТЬЮ ВСЕ ЗНАЧЕНИЯ НА ЛИСТЕ. А мне нужно, чтобы он менял только то, что мне надо. Вот и всё.
Я вам даже больше скажу. Просто заполнив некоторые ячейки словом «август», и прописывая код, указанный в статье по массовой замене, он у меня спрашивает по порядку, что хочу поменять, я ему пишу «август», он спрашивает на что хочу поменять, я пишу «сентябрь», он просит выделить диапазон, я выделяю диапазон со словами «август» и БАМ, ничего не происходит, как был август так и остался.

Изменено: 4vaker21.08.2014 13:12:07

Skip to content

Гиперссылка в Excel: как сделать, изменить, удалить

В статье разъясняется, как сделать гиперссылку в Excel, используя 3 разных метода. Вы узнаете, как вставлять, изменять и удалять гиперссылки на рабочих листах, а также исправлять неработающие ссылки.

Гиперссылки широко используются в Интернете для навигации между веб-сайтами. 

Если вы настоящий интернет-серфер, вы не понаслышке знаете о пользе гиперссылок. Щелкая по ним, вы моментально получаете доступ к другой информации, где бы она ни находилась. Но знаете ли вы о том, как можно использовать гиперссылки в таблицах Excel? Пришло время разобраться и начать использовать эту функцию Excel.

В ваших таблицах Excel вы можете легко создавать такие ссылки. Кроме того, вы можете вставить гиперссылку, чтобы перейти к другой ячейке, листу или книге, открыть новый файл Excel или создать сообщение электронной почты. В этом руководстве представлены подробные инструкции о том, как это сделать в Excel 365, 2019, 2016, 2013, 2010 и более ранних версиях.

Что такое гиперссылка в Excel

Гиперссылка Excel — это ссылка на определенное место, документ или веб-страницу, на которую пользователь может перейти, кликнув по ней.

Microsoft Excel позволяет создавать гиперссылки для различных целей, включая:

  • Переход к определенному месту в текущей рабочей книге
  • Открытие другого документа или переход к определенному месту в этом документе, например листу в файле Excel или закладке в документе Word
  • Переход на веб-страницу в Интернете
  • Создание нового файла Excel
  • Отправка письма на указанный адрес

Гиперссылки в Excel легко узнаваемы — обычно это текст, выделенный подчеркиванием и синим цветом.

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

  • Диалоговое окно «Вставить гиперссылку»
  • Функция ГИПЕРССЫЛКА
  • код VBA

Как создать гиперссылку с помощью диалогового окна

Самый распространенный способ поместить гиперссылку непосредственно в ячейку — использовать диалоговое окно «Вставить гиперссылку», доступ к которому можно получить тремя различными способами. Просто выберите ячейку, в которую вы хотите вставить ссылку, и выполните одно из следующих действий:

  • На вкладке меню «Вставка» в группе «Ссылки» нажмите кнопку «Гиперссылка» или «Ссылка» в зависимости от версии Excel.
  • Щелкните ячейку правой кнопкой мыши и выберите «Гиперссылка…» ( «Ссылка» в последних версиях) в контекстном меню.

Вставка гиперссылки в Excel

Рис 1. 

  • Нажмите комбинацию клавиш Ctrl + К.

А теперь, в зависимости от того, какую ссылку вы хотите создать, перейдите к одному из следующих примеров:

  • Гиперссылка на другой документ
  • Гиперссылка на веб-страницу (URL)
  • Гиперссылка на ячейку в текущей книге
  • Гиперссылка на новую книгу
  • Гиперссылка на адрес электронной почты

Гиперссылка на другой файл

Чтобы сделать гиперссылку, которая будет указывать на другой документ, например другой файл Excel, документ Word или презентацию PowerPoint, откройте диалоговое окно «Вставка гиперссылки» в Excel и выполните следующие действия:

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

Гиперссылка вставляется в выбранную ячейку и выглядит точно так, как вы ее настроили:

Чтобы сделать ссылку на определенный лист или ячейку, нажмите кнопку «Закладка…» в правой части диалогового окна «Вставка гиперссылки»,  затем выберите нужный рабочий лист и введите адрес целевой ячейки в поле «Введите адрес ячейки». Нажмите «ОК».

Чтобы создать ссылку на именованный диапазон, выберите его в списке Определенные имена, как показано ниже:

Добавить гиперссылку на веб-адрес (URL)

Чтобы сделать гиперссылку на сайт, откройте диалоговое окно «Вставка гиперссылки» и выполните следующие действия:

  1. В разделе «Связать с:»   выберите «файлом или веб-страницей».
  2. Нажмите кнопку «Обзор Интернета», затем откройте сайт, на который вы хотите сослаться,  переключитесь обратно в Excel, не закрывая веб-браузер.

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

Кроме того, вы можете просто скопировать URL-адрес страницы сайта в буфер обмена, а потом открыть диалоговое окно «Вставка гиперссылки» и просто вставить URL-адрес в поле «Адрес».

Гиперссылка на лист или ячейку в текущей книге

Один из способов, как вы можете эффективно использовать гиперссылки электронных таблиц, — это создать оглавление вашей рабочей книги. Внутренние гиперссылки Excel помогут вам быстро перейти к нужной части книги, особенно если в ней много листов и больших таблиц.

Первый способ создания гиперссылки на лист внутри одной книги — использование команды «Гиперссылка».

  1. Выберите ячейку, в которую вы хотите вставить гиперссылку на ячейку или на файл.
  2. Щелкните правой кнопкой мыши ячейку и выберите пункт «Ссылка» в контекстном меню.
    На экране появится диалоговое окно «Вставка гиперссылки».
  3. Выберите «Место в документе» в разделе «Связать с», если ваша задача — связать ячейку с определенным местом в той же книге. Или же выберите нужный файл, как мы это уже делали ранее.
  4. Укажите рабочий лист, на который вы хотите сослаться, в поле Или выберите место в этом документе.
  5. Введите адрес ячейки в поле Введите ссылку на ячейку, если вы хотите указать на определенную ячейку другого рабочего листа. Получится гиперссылка на ячейку в Excel. Можно это не делать, тогда по ссылке просто откроется этот лист.
  6. Введите значение или имя в поле Текст, чтобы как-то назвать гиперссылку в ячейке.

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

  1. Нажмите ОК .

Текст в ячейке будет подчеркнут и выделен синим цветом. Это означает, что ячейка содержит гиперссылку. Чтобы проверить, работает ли она, просто наведите указатель мыши на этот подчеркнутый текст и щелкните по нему, чтобы перейти в указанное место.

Гиперссылка на другую книгу Excel

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

  1. В разделе «Связать с» щелкните значок «Новый документ».
  2. В поле Текст введите текст ссылки, который будет отображаться в ячейке.
  3. В поле Имя нового документа введите новое имя книги, которую вы создадите.
  4. В поле Адрес  проверьте место, где будет сохранен созданный файл. Если вы хотите изменить расположение по умолчанию, нажмите кнопку Изменить.
  5. В разделе Когда вносить правку выберите нужный вариант редактирования.
  6. Нажмите ОК .

гиперссылка на файл в excel

Гиперссылка для создания сообщения электронной почты

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

  1. В разделе «Связать с» выберите значок «Электронная почта».
  2. В поле Адрес электронной почты введите адрес почты получателя или несколько адресов, разделенных точкой с запятой. Кстати, «mailto:» вводить не нужно, Excel сам подставит этот префикс.
  3. При желании введите тему сообщения в поле Тема. Имейте в виду, что некоторые браузеры и почтовые клиенты могут не распознавать строку темы.
  4. В поле Текст введите нужный текст ссылки.
  5. При необходимости нажмите кнопку «Подсказка…» и введите нужный текст (подсказка будет отображаться при наведении указателя мыши на гиперссылку).
  6. Нажмите «ОК».

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

Как создавать ссылки с помощью формулы ГИПЕРССЫЛКА

Если вы один из тех профессионалов Excel, которые используют формулы для решения большинства задач, вы можете использовать функцию ГИПЕРССЫЛКА, которая специально разработана для вставки гиперссылок в Excel. Это особенно полезно, когда вы собираетесь создавать, редактировать или удалять несколько ссылок одновременно.

Синтаксис формулы ГИПЕРССЫЛКА следующий:

ГИПЕРССЫЛКА( адрес ; [имя] )

Где:

  • адрес — это путь к целевому документу или веб-странице.
  • имя — это текст ссылки, который будет отображаться в ячейке.

Например, чтобы сделать гиперссылку с названием «Исходные данные», которая открывает Лист2 в книге с именем «Исходные данные», хранящейся в папке «Файлы Excel» на диске D, используйте следующую формулу:

=ГИПЕРССЫЛКА(«[D:Excel filesИсходные данные.xlsx]Лист2!A1»; «Исходные данные»)

Подробное объяснение аргументов функции ГИПЕРССЫЛКА и примеры формул для создания различных типов ссылок см. в статье Как использовать функцию гиперссылки в Excel .

Вставьте ссылку, перетащив ячейку

Самый быстрый способ создания гиперссылок внутри одной книги — использование метода перетаскивания. Позвольте мне показать вам, как это работает.

В качестве примера я возьму книгу из двух листов и создам гиперссылку на листе 1, которая ведёт на ячейку на листе 2.

Примечание. Убедитесь, что книга сохранена, потому что этот метод не работает в новых книгах.

  1. Выберите ячейку назначения гиперссылки на листе 2.
  2. Наведите указатель мыши на одну из границ ячейки и щелкните правой кнопкой мыши.

  1. Удерживая правую кнопку, переместите указатель мыши к вкладкам листов.

  1. Нажмите клавишу ALT и наведите указатель мыши на вкладку Лист 1.

    Нажатая клавиша ALT позволит переместиться на другой лист. Как только лист 1 активирован, вы можете перестать удерживать клавишу.

  2. Продолжайте перетаскивать курсор мыши в то место, куда вы хотите вставить гиперссылку.

  1. Отпустите правую кнопку мыши, чтобы появилось всплывающее меню.
  2. Выберите «Создать гиперссылку».

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

Без сомнения, перетаскивание — самый быстрый способ вставить гиперссылку на лист Excel. Он объединяет несколько операций в одно действие. Это займет у вас меньше времени, но немного больше концентрации внимания, чем два других метода. Так что вам решать, каким путем
лучше идти.

Как вставить гиперссылку в Excel с помощью VBA

Чтобы автоматизировать создание гиперссылки на ваших листах, вы можете использовать этот простой код VBA:

Public Sub AddHyperlink()

  Sheets("Sheet1").Hyperlinks.Add Anchor:=Sheets("Sheet1").Range("A1"), Address:="", SubAddress:="Sheet3!B5", TextToDisplay:="My hyperlink"

End Sub

Где:

  • Sheets — имя листа, на который должна быть вставлена ​​ссылка (в данном примере Sheet1).
  • Range — ячейка, в которую следует вставить ссылку (в данном примере A1).
  • SubAddress — место назначения ссылки, т.е. куда должна указывать гиперссылка (в данном примере Sheet3!B5).
  • TextToDisplay — текст, который будет отображаться в ячейке (в данном примере — «Моя гиперссылка»).

Этот макрос вставит гиперссылку под названием «Моя гиперссылка» в ячейку A1 на листе Sheet1 в активной книге. Нажав на ссылку, вы перейдете к ячейке B5 на листе 3 в той же книге.

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

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

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

  1. Щелкните правой кнопкой мыши гиперссылку, которую хотите изменить.
  2. Выберите «Редактировать гиперссылку» во всплывающем меню.

На экране появится диалоговое окно «Изменение гиперссылки». Вы видите, что оно выглядит точно так же, как диалоговое окно «Вставка гиперссылки», и имеет те же поля.

Примечание. Есть еще как минимум два способа открыть гиперссылку. Вы можете нажать комбинацию Ctrl + К или кнопку «Гиперссылка» в группе «Ссылки» на вкладке меню «ВСТАВКА». Но не забудьте перед этим выделить нужную ячейку.

  1. Обновите информацию в соответствующих полях диалогового окна «Изменение гиперссылки».
  2. Нажмите «ОК» и проверьте, куда сейчас ведёт гиперссылка.

Примечание. Если вы использовали формулу для добавления гиперссылки в Excel, вам необходимо открыть и отредактировать её, чтобы изменить место назначения. Выберите ячейку, содержащую ссылку, и поместите курсор в строку формул, чтобы отредактировать.

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

Кликнув ячейку, содержащую гиперссылку, вы не откроете её, а перейдете к месту назначения ссылки, т. е. к целевому документу или веб-странице. Чтобы выбрать для редактирования ячейку, не переходя к расположению ссылки, щелкните ячейку и удерживайте кнопку мыши, пока указатель не превратится в крестик (курсор выбора Excel), а уж затем отпустите кнопку.

Если гиперссылка занимает только часть ячейки (т. е. если ваша ячейка шире текста ссылки), наведите указатель мыши на пустое место, и как только он изменится с указывающей руки на крест, щелкните ячейку:

Еще один способ выбрать ячейку без открытия гиперссылки — выбрать соседнюю ячейку и с помощью клавиш со стрелками установить курсор на ячейке со ссылкой.

Чтобы изменить сразу несколько формул гиперссылок, используйте функцию Excel «Заменить все», как показано в этом совете.

Как изменить внешний вид гиперссылки

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

  1. Перейдите в группу Стили на вкладке ГЛАВНАЯ .
  2. Откройте список «Стили ячеек».
  3. Щелкните правой кнопкой мыши на кнопке «Гиперссылка», чтобы изменить внешний вид. Или щелкните правой кнопкой мыши на «Открывавшаяся гиперссылка», если нужно изменить вид ссылок, по которым уже переходили.
  4. Выберите опцию «Изменить» в контекстном меню.

  1. Нажмите «Формат» в диалоговом окне «Стили».
  2. Внесите необходимые изменения в диалоговом окне «Формат ячеек». Здесь вы можете изменить выравнивание и шрифт гиперссылки или добавить цвет заливки.
  3. Когда вы закончите, нажмите OK.
  4. Убедитесь, что все изменения отмечены в разделе «Стиль включает» в диалоговом окне «Стиль».
  5. Нажмите ОК.

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

Как убрать гиперссылку в Excel

Удаление гиперссылок в Excel выполняется в два клика. Вы просто щелкаете ссылку правой кнопкой мыши и выбираете «Удалить гиперссылку» в контекстном меню.

Это удалит интерактивную гиперссылку, но сохранит текст ссылки в ячейке. То есть, гиперссылка превратится в текст. Чтобы также удалить текст ссылки, щелкните ячейку правой кнопкой мыши и выберите «Очистить содержимое» .

Совет. Чтобы удалить сразу все или несколько выбранных гиперссылок, используйте функцию «Специальная вставка», как показано в статье «Как удалить несколько гиперссылок в Excel». Также там описаны и другие способы удаления.

Как извлечь веб-адрес (URL) из гиперссылки Excel

Есть два способа извлечь URL-адрес из гиперссылки в Excel: вручную и программно.

Извлечь URL-адрес из гиперссылки вручную

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

  1. Выберите ячейку, содержащую гиперссылку.
  2. Откройте диалоговое окно «Редактировать гиперссылку», нажав Ctrl + К или щелкните гиперссылку правой кнопкой мыши и выберите «Редактировать гиперссылку».
  3. В поле Адрес выберите URL-адрес и нажмите Ctrl + С, чтобы скопировать его.

  1. Нажмите Esc или OK, чтобы закрыть  окно редактирования.
  2. Вставьте скопированный URL-адрес в любую пустую ячейку. Готово!

Извлечение нескольких URL-адресов с помощью VBA

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

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

Sub ExtractHL()
  Dim HL As Hyperlink
  Dim OverwriteAll As Boolean

  OverwriteAll = False

  For Each HL In ActiveSheet.Hyperlinks

    If Not OverwriteAll Then
        If HL.Range.Offset(0, 1).Value <> "" Then
            If MsgBox("One or more of the target cells is not empty. Do you want to overwrite all cells?", vbOKCancel, "Target cells are not empty") = vbCancel Then
                Exit For
            Else
                OverwriteAll = True
            End If
        End If
    End If
    HL.Range.Offset(0, 1).Value = HL.Address
  Next

End Sub

Как показано на скриншоте ниже, код VBA получает URL-адреса из столбца гиперссылок и помещает результаты в соседние ячейки.

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

Преобразование объектов рабочего листа в гиперссылки

Преобразовать можно не только текст в гиперссылку. Многие объекты рабочего листа, включая диаграммы, изображения, текстовые поля и фигуры, также можно превратить в интерактивные гиперссылки. Для этого достаточно щелкнуть объект правой кнопкой мыши (как, например, объект WordArt на скриншоте ниже), нажать «Гиперссылка» и настроить ссылку, как описано в разделе «Как создать гиперссылку в Excel» .

Совет. Меню диаграмм, вызываемое правой кнопкой мыши, не имеет параметра «Гиперссылка». Чтобы преобразовать диаграмму Excel в гиперссылку, выберите диаграмму и нажмите Ctrl + К.

Не открывается гиперссылка в Excel — причины и решения

Если гиперссылки не работают должным образом на ваших листах, следующие шаги по устранению неполадок помогут вам определить источник проблемы и устранить ее.

Ссылка недействительна

Симптомы: щелчок по гиперссылке в Excel не приводит пользователя к месту назначения, а выдает ошибку «Ссылка недействительна».

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

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

Гиперссылка отображается как обычная текстовая строка

Симптомы . Набранные, скопированные или импортированные на лист web-адреса (URL-адреса) не преобразуются автоматически в интерактивные гиперссылки и не выделяются традиционным подчеркнутым синим форматированием. Или же гиперссылка не активна, хоть и выглядят нормально. Ничего не происходит, когда вы нажимаете на нее.

Решение . Дважды щелкните ячейку или нажмите F2, чтобы войти в режим редактирования, затем перейдите в конец URL-адреса и нажмите клавишу пробела. Excel преобразует текстовую строку в интерактивную гиперссылку. Если таких ссылок много, проверьте формат своих ячеек. Иногда возникают проблемы со ссылками, размещенными в ячейках с общим форматом. В этом случае попробуйте изменить формат ячейки на Текст.

Гиперссылки перестали работать после повторного открытия книги

Симптомы. Гиперссылки Excel работали нормально, пока вы не сохранили и не открыли книгу заново. Теперь они все серые и больше не работают.

Решение : Прежде всего, проверьте, не было ли изменено место назначения ссылки, то есть целевой документ не был ни переименован, ни перемещен. Если это не так, вы можете отключить параметр, который заставляет Excel проверять гиперссылки при каждом сохранении книги. Были сообщения о том, что Excel иногда отключает нормально работающие гиперссылки. Например, ссылки на файлы, хранящиеся в вашей локальной сети, могут быть отключены из-за некоторых временных проблем с вашим сервером. Или ссылки на URL-адреса будут отключены при временном пропадании интернета. Чтобы отключить этот параметр, выполните следующие действия:

  1. В Excel 2010 и новее щелкните Файл > Параметры. В Excel 2007 нажмите кнопку Office > Параметры Excel.
  2. На левой панели выберите «Дополнительно».
  3. Прокрутите вниз до раздела «Общие» и нажмите «Параметры Интернета…».
  4. В диалоговом окне «Параметры веб-документа» перейдите на вкладку «Файлы», снимите флажок «Обновлять ссылки при сохранении» и нажмите «ОК» .

Гиперссылки на основе формул не работают

Симптомы. Ссылка, созданная с помощью функции ГИПЕРССЫЛКА, не открывается или в ячейке отображается значение ошибки.

Решение. Большинство проблем с гиперссылками на основе формул вызваны несуществующим или неправильным путем, указанным в аргументе адрес. Перейдите по ссылкам ниже, чтобы узнать, как правильно создать формулу гиперссылки. Дополнительные шаги по устранению неполадок см. в разделе Функция Excel ГИПЕРССЫЛКА не работает.

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

Другие статьи по теме:

Содержание

  1. Как массово изменить гиперссылки?
  2. Как массово изменить гиперссылки?
  3. Как массово изменить гиперссылки в Excel?
  4. Все гораздо сложнее, если гиперссылки были созданы через стандартное меню:
  5. Блог Антона Палихова
  6. Excel, Word, OneNote, книжки, D&D, Roll20, Discord, анализ, оптимизация, развлечения
  7. КАК МАССОВО ИЗМЕНИТЬ ГИПЕРССЫЛКИ?

В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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 249 скачиваний)

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

Источник

В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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 249 скачиваний)

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

Источник

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

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

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

Теперь адреса ссылок должны поменяться.

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

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

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

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

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

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

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

Чтобы заменить гиперссылки только в выделенных объектах необходимо строку
For Each oSh In ActiveSheet.Shapes
заменить на такую:
For Each oSh In Selection.ShapeRange
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.

Скачать пример: Пример замены гиперссылок.xls (58,0 KiB, 8 817 скачиваний)

Источник

Блог Антона Палихова

Excel, Word, OneNote, книжки, D&D, Roll20, Discord, анализ, оптимизация, развлечения

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

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

Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА, то все просто:

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

Теперь адреса ссылок должны поменяться.

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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 rCell.Hyperlinks(1).Address = Replace(rCell.Hyperlinks(1).Address, sWhatRep, sRep) rCell.Hyperlinks(1).SubAddress = Replace(rCell.Hyperlinks(1).SubAddress, sWhatRep, sRep) End If Next rCell Application.ScreenUpdating = 1 End Sub

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

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

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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

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

Источник

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

Одновременное изменение нескольких путей гиперссылок на листе с помощью кода VBA

Одновременное изменение нескольких путей гиперссылок на листе / книге / нескольких листах / выделении с помощью удивительной функции


Одновременное изменение нескольких путей гиперссылок на листе с помощью кода VBA

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

1. Удерживая нажатой ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модули, и вставьте следующий макрос в Окно модуля.

Код VBA: изменить сразу несколько путей гиперссылок

Sub ReplaceHyperlinks()
'Updateby Extendoffice
Dim Ws As Worksheet
Dim xHyperlink As Hyperlink
Dim xOld As String, xNew As String
xTitleId = "KutoolsforExcel"
Set Ws = Application.ActiveSheet
xOld = Application.InputBox("Old text:", xTitleId, "", Type:=2)
xNew = Application.InputBox("New text:", xTitleId, "", Type:=2)
Application.ScreenUpdating = False
For Each xHyperlink In Ws.Hyperlinks
    xHyperlink.Address = Replace(xHyperlink.Address, xOld, xNew)
Next
Application.ScreenUpdating = True
End Sub

3, Затем нажмите F5 ключ для запуска этого кода и окно подсказки, позволяющее ввести старый адрес гиперссылки в Старый текст коробка. Смотрите скриншот:

4. Нажмите OK, и появится другое окно подсказки, напоминающее вам о вводе нового адреса гиперссылки, который вы хотите использовать.

5, Затем нажмите OK, все те же старые адреса гиперссылок были сразу заменены на новые. Смотрите скриншоты:


Одновременное изменение нескольких путей гиперссылок на листе / книге / нескольких листах / выделении с помощью удивительной функции

Если вы хотите заменить пути гиперссылок из выделенного фрагмента, нескольких листов, текущей рабочей книги или нескольких книг, как вы могли бы это сделать? С участием Найти и заменить особенность Kutools for Excel, вы быстро справитесь с этой задачей.

Примечание:Чтобы применить это Найти и заменить утилиту, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Нажмите Кутулс > Навигация, см. снимок экрана:

2. В открытом Навигация панели, нажмите Найти и заменить в Найти и заменить панели, нажмите Замените tab, а затем выполните следующие операции:

  • Введите текст старой гиперссылки, которую хотите найти, в Найти то, что текстовое поле, а затем введите новый текст гиперссылки, который вы хотите заменить, в поле Заменить текстовое окно;
  • Укажите область, в которой вы хотите найти, и замените путь гиперссылки из В раскрывающийся список;
  • Затем выберите «Гиперссылки» в раскрывающемся списке «Искать в»;
  • Наконец, нажмите Найти все Кнопка, все соответствующие ячейки, содержащие конкретный текст гиперссылки, перечислены в нижнем списке.

3, Затем нажмите Заменить все кнопки старые пути гиперссылок были сразу изменены на новые, см. снимок экрана:

Нажмите, чтобы скачать Kutools for Excel для бесплатной пробной версии!


Больше относительных статей:

  • Извлечение фактических адресов из гиперссылок
  • Предположим, у вас есть диапазон ячеек, которые содержат гиперссылки, и теперь вам нужно увидеть реальное назначение гиперссылок и извлечь их из гиперссылок, как показано на следующем снимке экрана. Есть ли простые способы быстро решить эту проблему?
  • Преобразование URL-адресов изображений в реальные изображения в Excel
  • Если у вас есть список URL-адресов изображений в столбце A, и теперь вы хотите загрузить соответствующие изображения из URL-адресов и отобразить их в соседнем столбце B, как показано на скриншоте слева. Как в Excel быстро и легко извлечь реальные изображения из URL-адресов изображений?
  • Преобразование текста URL в интерактивную гиперссылку в Excel
  • Предположим, у вас есть несколько URL-адресов на вашем листе, но они не связаны, и теперь вам нужно преобразовать все несвязанные URL-адреса в интерактивные гиперссылки, как показано на следующих снимках экрана. Конечно, вы можете дважды щелкнуть их один за другим, чтобы сделать их интерактивными, но это займет много времени, если URL-адресов много. Как в Excel можно автоматически преобразовать несколько несвязанных URL-адресов в интерактивные гиперссылки?
  • Откройте определенную страницу PDF-документа из гиперссылки Excel
  • Когда вы связываете ячейку с файлом PDF, обычно вы переходите на первую страницу файла PDF, когда щелкаете, чтобы открыть гиперссылку. Если вам нужно напрямую перейти к определенной странице PDF-файла, щелкнув гиперссылку, эта статья может оказать вам услугу.

Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

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

Sub ЗаменаИспорченныхГиперссылок()
    On Error Resume Next
    Dim hl As Hyperlink, oldString As String, newString As String, sh As Worksheet
    ' часть гиперссылки, подлежащая замене
    oldString = "C:Documents and settingsБухгалтерApplication data"
    ' на что заменяем
    newString = "\адрес_сервера"
    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 в другой папке (на другом диске).

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

Sub ЗаменаИспорченныхГиперссылок_2()
    On Error Resume Next
    Dim hl As Hyperlink, newString$, sh As Worksheet
 
    ' часть гиперссылки, подлежащая замене
    oldString1 = "C:Documents and settingsБухгалтер1"
    oldString2 = "C:Documents and settingsБухгалтер2"
 
    ' на что заменяем
    newString = "\адрес_сервера"
 
    For Each sh In ActiveWorkbook.Worksheets    ' перебираем все листы в активной книге
        For Each hl In sh.Hyperlinks    ' перебираем все гиперссылки на листе
            If hl.Address Like oldString1 & "*" Then  hl.Address = Replace(hl.Address, oldString1, newString)
            If hl.Address Like oldString2 & "*" Then  hl.Address = Replace(hl.Address, oldString2, newString)            
        Next
    Next sh
 
End Sub

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

Sub ЗаменаИспорченныхГиперссылок2()
    On Error Resume Next
    Dim hl As Hyperlink, oldString$, newString$, sh As Worksheet, n&, msg$, coll As New Collection, Item
 
    ' часть гиперссылки, подлежащая замене
    oldString = "../../AppData/Roaming/Microsoft/Excel/"
    ' на что заменяем
    newString = "C:UsersAdminDesktopОТЧЁТЫ ВСЕ"
 
    For Each sh In ActiveWorkbook.Worksheets    ' перебираем все листы в активной книге
        For Each hl In sh.Hyperlinks    ' перебираем все гиперссылки на листе
            ' Debug.Print hl.Address
            If (hl.Address Like oldString & "*") Or (hl.Address Like Replace(oldString, "/", "") & "*") Then
                hl.Address = Replace(hl.Address, oldString, newString, , , vbTextCompare)
                hl.Address = Replace(hl.Address, Replace(oldString, "/", ""), newString, , , vbTextCompare)
                n = n + 1
            Else
                If InStr(1, hl.Address, "mailto", vbTextCompare) = 0 Then coll.Add hl.Address, UCase(hl.Address)
            End If
        Next
    Next sh
 
    For Each Item In coll
        msg$ = msg$ & Item & vbNewLine
    Next
 
    MsgBox "Заменено гиперссылок: " & n & IIf(Len(msg$), vbNewLine & vbNewLine & _
                                                         "Также в файле найдены ссылки на:" & vbNewLine & msg$, ""), vbInformation
End Sub

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