Хитрости »
30 Май 2011 156288 просмотров
Как массово изменить гиперссылки?
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе Excel.
Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками — Что такое гиперссылка?) на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки .excel_vba на текст excel-vba.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА(HYPERLINK), то все просто:
- выделяем диапазон с гиперссылками;
- жмем Ctrl+H.
- Найти: .excel_vba
- Заменить на: excel-vba
- Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка целиком«
- Жмем «Заменить все«
Теперь адреса ссылок должны поменяться.
Все гораздо сложнее, если гиперссылки были созданы через стандартное меню: правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Скачать пример

Так же см.:
Что такое гиперссылка?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Всем привет! Как-то на работе столкнулся на работе с интересной задачей. Во время работе Excel выдал ошибку и закрыл окно. После попытки открыть файла оказалось, что все гиперссылки в документе изменили часть своего пути.
Решение
- Открываем VBA (Visual Basic for Applications) через Alt+F11
- В окне Project-VBAProject (левой верхнее) правой кнопкой мыши делаем Insert — Module
- В появившемся большом окне вставляем код макроса вида с нашими ссылками (первая ссылка — что нужно поменять, вторая — на что нужно поменять)
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.
Содержание
- Как массово изменить гиперссылки?
- Блог Антона Палихова
- Excel, Word, OneNote, книжки, D&D, Roll20, Discord, анализ, оптимизация, развлечения
- КАК МАССОВО ИЗМЕНИТЬ ГИПЕРССЫЛКИ?
- Пакетное переименование сразу нескольких гиперссылок в Excel
- Переименование гиперссылок на основе текста в другом столбце
- Пакетное сотрудничество n преобразовать гиперссылки в текстовое содержимое или извлечь гиперссылки из ячеек
- Переименуйте все гиперссылки с одинаковым отображаемым текстом
- Загрузить файл образца
- Другие операции (статьи) Связанные К гиперссылке
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе Excel.
Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками — Что такое гиперссылка?) на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки .excel_vba на текст excel-vba .
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА (HYPERLINK) , то все просто:
- выделяем диапазон с гиперссылками;
- жмем Ctrl + H .
- Найти: .excel_vba
- Заменить на: excel-vba
- Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка целиком«
- Жмем «Заменить все«
Теперь адреса ссылок должны поменяться.
Все гораздо сложнее, если гиперссылки были созданы через стандартное меню: правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.

Статья помогла? Поделись ссылкой с друзьями!
Источник
Блог Антона Палихова
Excel, Word, OneNote, книжки, D&D, Roll20, Discord, анализ, оптимизация, развлечения
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе Excel.
Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками — Что такое гиперссылка?) на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки .excel_vba на текст excel-vba.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА, то все просто:
- выделяем диапазон с гиперссылками;
- жмем Ctrl+H.
- Найти: .excel_vba
- Заменить на: excel-vba
- Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка целиком«
- Жмем «Заменить все«
Теперь адреса ссылок должны поменяться.
Все гораздо сложнее, если гиперссылки были созданы через стандартное меню: правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Источник
Как мы знаем, гиперссылки в Excel состоят из двух частей: одна – это адрес гиперссылки, а другая – отображаемый текст. В некоторых случаях может потребоваться переименовать весь отображаемый текст гиперссылок. Как быстро справиться с этой работой? В этом руководстве представлены два метода переименования гиперссылок в двух разных случаях:
1 Переименование гиперссылок на основе текста в другом столбце

2 Переименуйте все гиперссылки с одинаковым отображаемым текстом

Загрузить файл образца
Если вы хотите изменить отображаемый текст гиперссылок на основе значений другого столбца, вы можете использовать формулу ниже
В формуле A1 – это расположение адреса, B1 – отображаемый текст.
Нажмите клавишу Enter и перетащите маркер автозаполнения по ячейкам, чтобы применить эту формулу.
Возможно, вас заинтересует эта утилита:
Если вы хотите заменить содержимое ячейки на адреса гиперссылок, вы можете выбрать параметр Содержимое ячейки заменить адреса гиперссылок в утилите Конвертировать гиперссылки в Kutools for Excel , если вы хотите извлечь все гиперссылки из диапазона ячеек, выберите параметр Адреса гиперссылок заменяют содержимое ячейки . Нажмите, чтобы получить 30-дневную бесплатную пробную версию! 
Если вы хотите переименовать все гиперссылки с одинаковым отображаемым текстом, вы можете использовать функцию «Найти и заменить». р>
1. Выделите все гиперссылки, отображаемый текст которых вы хотите изменить, и нажмите Ctrl + H, чтобы открыть диалоговое окно Найти и заменить .
2. Нажмите кнопку Параметры , чтобы развернуть диалоговое окно, затем нажмите Формат .
3. Затем в диалоговом окне Найти формат на вкладке Шрифт выберите Single из раскрывающегося списка подчеркивание . Нажмите OK , чтобы вернуться в диалоговое окно Найти и заменить .
4. Введите * в текстовое поле Найти что , затем в текстовое поле Заменить на введите нужный текст для отображения. Нажмите Заменить все и нажмите OK > Закрыть , чтобы закрыть все диалоговые окна.

Теперь все гиперссылки были переименованы в тот же текст.
Загрузить файл образца
Щелкните, чтобы загрузить файл образца
Быстро создать гиперссылку на конкретный рабочий лист в другой книге
В Excel мы можем создавать гиперссылка на веб-адрес, чтобы быстро открыть веб-сайт, щелкнув его, но пробовали ли вы когда-нибудь создать гиперссылку на конкретный рабочий лист в другой книге? В этой статье вы можете найти решение.
Создать гиперссылку на диаграмму в Excel
В Excel создать гиперссылку легко для большинства пользователей, но пробовали ли вы когда-нибудь создать гиперссылку на диаграмму в Excel, что означает, что нужно щелкнуть значение, а затем перейти к диаграмме на другом листе? Как правило, нет возможности напрямую создать гиперссылку на диаграмму, но здесь, в этой статье, я могу представить интересный способ ее решения.
Запретить/отключить автоматические гиперссылки в Excel
Как все мы знаем, Excel автоматически создает интерактивные гиперссылки, когда мы вводим веб-адреса в ячейки. Может быть, иногда это немного раздражает. Сегодня я расскажу вам несколько быстрых приемов, которые помогут предотвратить автоматические гиперссылки в Excel.
Преобразование нескольких адресов электронной почты в гиперссылки в Excel
Если у вас есть список адресов электронной почты в виде обычного текста на листе, и теперь вы хотите преобразовать эти адреса электронной почты в гиперссылки, которые можно отправлять по электронной почте, щелкая адреса. Конечно, вы можете преобразовать их в адреса электронной почты с гиперссылками, но этот метод будет утомительным, если необходимо преобразовать несколько адресов. В этой статье я расскажу о некоторых хороших приемах для решения этой задачи.
Дополнительные статьи о создании гиперссылок
Инструменты повышения производительности Excel -> ->
Источник

КАК МАССОВО ИЗМЕНИТЬ ГИПЕРССЫЛКИ?
В этой статье я покажу как
можно быстро и качественно изменить адреса гиперссылок на листе Excel.
Существуют ситуации, когда на
листе есть много гиперссылок(если еще на знакомы с гиперссылками — Что такое гиперссылка?) на различные папки или
интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок
надо поменять. Как правило это происходит если либо домен сменился, либо на
сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо
все просто было перемещено в другую папку. Для примера возьмем такие исходные
данные: надо заменить текст ссылки .excel_vba на текст excel-vba.
Прежде чем начать замену
необходимо еще определить каким способом установлена гиперссылка. Если
установлена через формулу ГИПЕРССЫЛКА, то все просто:
- выделяем диапазон с гиперссылками;
- жмем Ctrl+H.
- Найти: .excel_vba
- Заменить на: excel-vba
- Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка
целиком«
- Жмем «Заменить все«

Теперь адреса ссылок должны
поменяться.
Все гораздо сложнее,
если гиперссылки были созданы через стандартное меню: правый клик мыши на
ячейке — Гиперссылка. Тут фокус с заменой через 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
тогда надо будет выделить
объекты на листе, для которых необходимо заменить гиперссылки, и запустить
макрос.
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе Excel.
Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки <f-с1>.excel_vba</f-с1> на текст <f-с2>excel-vba</f-с2>.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА, то все просто:
- выделяем диапазон с гиперссылками;
- жмем Ctrl+H.
- Найти: <f-с1>.excel_vba</f-с1>
- Заменить на: <f-с2>excel-vba</f-с2>
- Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка целиком«
- Жмем «Заменить все«
Теперь адреса ссылок должны поменяться.
Все гораздо сложнее, если гиперссылки были созданы через стандартное меню:
правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Скачать пример: 
За материал поклон Дмитрию: https://www.excel-vba.ru/chto-umeet-excel/kak-massovo-izmenit-giperssylki/
Join @AdmNtsRu on Telegram
Смотрите также:
Excel для Microsoft 365 Word для Microsoft 365 Outlook для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 Outlook 2021 PowerPoint 2021 Excel 2019 Word 2019 Outlook 2019 PowerPoint 2019 Excel 2016 Word 2016 Outlook 2016 PowerPoint 2016 Excel 2013 Word 2013 Outlook 2013 PowerPoint 2013 Excel 2010 Word 2010 Outlook 2010 PowerPoint 2010 Еще…Меньше
Вы можете удалить гиперссылку для отдельного адреса, удалить несколько гиперссылок одновременно, отключить автоматическое создание гиперссылок или сделать так, чтобы для перехода по ссылке не требовалось нажимать клавишу CTRL.
Удаление гиперссылки
Чтобы удалить гиперссылку, но при этом сохранить текст, щелкните ее правой кнопкой мыши и нажмите кнопку Удалить гиперссылку.

Чтобы полностью удалить гиперссылку, выделите ее и нажмите клавишу DELETE.
В Excel
Если ссылка создана с помощью функции ГИПЕРССЫЛКА, вы можете удалить ее, следуя этим инструкциям:
-
Выберите ячейку, содержащую гиперссылку.
-
Нажмите клавиши CTRL+C, чтобы скопировать ссылку.
-
Щелкните правой кнопкой мыши и вставьте с помощью параметра Вставить значения .
Удаление всех гиперссылок одновременно
Если вы используете Word, Outlook или Excel, вы можете удалить все гиперссылки в файле с помощью сочетания клавиш.
В Word и Outlook
-
Нажмите клавиши CTRL+A, чтобы выделить весь текст.
-
Нажмите клавиши CTRL+SHIFT+F9.
В Excel
-
Выделите все ячейки, содержащие гиперссылки (например, нажав CTRL+A).
-
Щелкните их правой кнопкой мыши и выберите пункт Удалить гиперссылки.
Отключение автоматической замены гиперссылок
Если не нужно, чтобы в документах Office по мере ввода текста автоматически создавались гиперссылки, вы можете их выключить.
-
В Office 2010 и более поздних версий
В меню Файл выберите пункты Параметры и Правописание.
(В Outlook выберите Файл >Параметры > Почта > Параметры редактора > Правописание.)
-
Нажмите кнопку Параметры автозамены и откройте вкладку Автоформат при вводе.
-
Снимите флажок адреса Интернета и сетевые пути гиперссылками.
Выключение перехода по ссылке по щелчку при нажатой клавише CTRL
По умолчанию в Word и Outlook необходимо нажимать клавишу CTRL для перехода по ссылке. Это предотвращает случайный переход во время правки документа.
Если вы хотите переходить по ссылкам, не нажимая клавишу CTRL, сделайте следующее:
-
В Word щелкните Параметры > файлов > Дополнительно.
В Outlook щелкните Параметры > файлов > Параметры редактора > почты > Дополнительно.
-
В разделе Параметры правки снимите флажок CTRL + щелчок для выбора гиперссылки.
Дополнительные сведения
Создание и изменение гиперссылок
Нужна дополнительная помощь?
|
Kazakoff Пользователь Сообщений: 9 |
Доброе время суток! |
|
tgoring Пользователь Сообщений: 3 |
#2 19.06.2014 14:30:53 Ссылки все на одном листе?
Изменить нужно то, что в кавычках. |
||
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
Kazakoff Пользователь Сообщений: 9 |
нет, ссылки во всей книге. в итоге надо чтобы удалилась чать пути /../../../Папка/Папка/ и осталось только название файла и ячейки…. |
|
Kazakoff Пользователь Сообщений: 9 |
The_Prist,это мне не помогло, дело в том, что каждая гиперссылка в файле 1 имеет адрес разной ячейки второстепенного файла, поэтому мне необходимо только удалить первую часть адреса |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Т.е. попробовать лень? Код принимает в качестве аргумента не полный адрес — а часть. Как раз первую часть ссылок(одинаковую) указываете. Если надо удалить — в качестве заменяемого адреса пусто. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
Kazakoff Пользователь Сообщений: 9 |
#7 19.06.2014 17:45:19 The_Prist, не думаю, что я ленивый человек. Пробовал я много чего. К примеру:
комп думает три секунды и…..ничего не меняется |
||
|
vikttur Пользователь Сообщений: 47199 |
Кнопка для форматирования кода в сообщении |
|
Finswimmer Пользователь Сообщений: 424 |
#9 19.06.2014 17:49:07 Вот таким кодом я вытаскивал весь адрес из гиперссылки. А доработать чтобы остались названия ячейки, не сложно
|
||
|
Kazakoff Пользователь Сообщений: 9 |
#10 19.06.2014 17:49:56 Спасибо vikttur, ,
|
||
|
Kazakoff Пользователь Сообщений: 9 |
#11 19.06.2014 17:53:10 пробовал также:
не хочет работать и все тут. Я уже и в параметрах безопасности макросам все разрешил… |
||
|
Игорь Пользователь Сообщений: 3631 |
Кросс: http://programmersforum.ru/showthread.php?t=262907Kazakoff , нет файла — нет помощи |
|
Kazakoff Пользователь Сообщений: 9 |
я прошу прощения. вот создал пример, там должен быть макрос test2. Может я чего не догоняю, но он не срабатывает. |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Попробовал заменить «……..COMMONTDMaintenanceТранспортная сетьТранспортная сеть» на пусто своим кодом — все заменилось, никаких проблем. И код в книге работает. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
Kazakoff Пользователь Сообщений: 9 |
программа сама почему-то заменила все пробелы на «%20» |
|
The_Prist Пользователь Сообщений: 14182 Профессиональная разработка приложений для MS Office |
Какая такая программа?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
Kazakoff Пользователь Сообщений: 9 |
The_Prist,большущее Вам спасибо, поставили меня на правильный путь!!! %20 — это эксель так заменил все пробелы в ссылках. и я тупо копировал путь из ссылки в макрос с процентами, убрал и все получилось. Спасибо, что потратили на меня время!! |
|
4vaker Пользователь Сообщений: 26 |
#19 20.08.2014 20:05:03 Добрый вечер!
Например «июль» на «август». |
||
|
а через обычную замену Ctrl-H по части формулы — не работает? |
|
|
4vaker Пользователь Сообщений: 26 |
работает, но надо каждой ячейке нажимать ENTER, а ячеек слишком дохрена, это никак не вариант. |
|
зачем жать Enter, если есть кнопка «заменить все»? |
|
|
4vaker Пользователь Сообщений: 26 |
как же Вы не понимаете, мне нужно указать диапазон, потому что в некоторых ячейках менять ту же самую часть формулы не надо |
|
как же мне было понять, если вы об этом не говорили? |
|
|
4vaker Пользователь Сообщений: 26 |
Вот, пожалста. |
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
4vaker, формируйте пути через сцепку текстовых констант с переменной частью. Конкретней не скажу. В примере не показано что есть, а что надо получить. Хотя прочтение правил сэкономило бы Ваше время и время помогающих. ДобРа. <#0> |
|
4vaker Пользователь Сообщений: 26 |
Нужно из столба «Е» сделать столб «Х». |
|
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#28 21.08.2014 11:01:10 Замените:
на
<#0> |
||||
|
Максим Зеленский Пользователь Сообщений: 4646 Microsoft MVP |
#29 21.08.2014 11:38:37 вообще-то там код подсвечен красным из-за несоблюдения синтаксиса. Если вам надо изменить строку, которая содержит кавычки, то ее надо тогда прописать так:
только макрос ничего не меняет, так как нет гиперссылок в ячейках.
F1 творит чудеса |
|||
|
4vaker Пользователь Сообщений: 26 |
#30 21.08.2014 13:00:39 Кажется я не с того начал. Значит давайте сначала. Изменено: 4vaker — 21.08.2014 13:12:07 |
@Qairat
frontend developer, angular 2+
Всем Привет!
Такая ситуация. Есть такой файл:
И везде на гипперссылках написано слово parsing/Licenses/Details/и свое значение.
Теперь мне надо поменять там слово parsing на другое слово.
Как можно сделать сразу везде?
Помогите.
Там более 20 тысяч строк.
-
Вопрос заданболее трёх лет назад
-
2264 просмотра
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, в 19:47
15000 руб./за проект
15 апр. 2023, в 19:35
Цена договорная
15 апр. 2023, в 19:01
10000 руб./за проект
Минуточку внимания
Как мы знаем, гиперссылки в Excel состоят из двух частей: одна — это адрес гиперссылки, а другая — отображаемый текст. В некоторых случаях вы можете захотеть переименовать весь отображаемый текст гиперссылок. Как быстро справиться с этой работой? Здесь, в этом руководстве, предлагаются два метода переименования гиперссылок в двух разных случаях:
1 Переименовать гиперссылки на основе текста в другом столбце
2 Переименуйте все гиперссылки с одинаковым отображаемым текстом
Скачать образец файла
Переименование гиперссылок на основе текста в другом столбце
Если вы хотите изменить отображаемый текст гиперссылок на основе значений другого столбца, вы можете использовать формулу ниже
= ГИПЕРССЫЛКА (A1; B1)
В формуле A1 — это расположение адреса, B1 — отображаемый текст.
Нажмите Enter и перетащите маркер автозаполнения над ячейками, чтобы применить эту формулу.
Возможно, вас заинтересует эта утилита:
Переименуйте все гиперссылки с одинаковым отображаемым текстом
Если вы хотите переименовать все гиперссылки с одинаковым отображаемым текстом, вы можете использовать функцию «Найти и заменить».
1. Выберите все гиперссылки, отображаемый текст которых вы хотите изменить, и нажмите Ctrl + Н тo отображать Найти и заменить Диалог.
2. Нажмите Опции кнопку, чтобы развернуть диалоговое окно, затем щелкните Формат.
3. Затем в Найти формат диалога под шрифт вкладка, выберите Один из раскрывающегося списка подчеркивание. Нажмите OK вернуться в Найти и заменить Диалог.
4. Тип * в Найти то, что текстовое поле, затем в Заменить текстовое поле, введите нужный текст для отображения. Нажмите Заменить всеи нажмите OK > Закрыть закрыть все диалоги.

Теперь все гиперссылки переименованы в одинаковый текст.
Скачать образец файла
Нажмите, чтобы загрузить образец файла
Другие операции (статьи), связанные с гиперссылкой
Быстро создать гиперссылку на конкретный лист в другой книге
В Excel мы можем создать гиперссылку на веб-адрес, чтобы быстро открыть веб-сайт, щелкнув его, но пробовали ли вы когда-нибудь создать гиперссылку на конкретный рабочий лист в другой книге? В этой статье вы можете найти решение.
Создать гиперссылку на диаграмму в Excel
В Excel создать гиперссылку легко для большинства пользователей, но пробовали ли вы когда-нибудь создать гиперссылку на диаграмму в Excel, что означает щелчок по значению, а затем ссылку на диаграмму на другом листе? Как правило, нет возможности напрямую создать гиперссылку на диаграмму, но здесь, в этой статье, я могу представить интересный способ ее решения.
Запретить / отключить автоматические гиперссылки в Excel
Как все мы знаем, Excel автоматически создает интерактивные гиперссылки, когда мы вводим веб-адреса в ячейки. Может быть, иногда это немного раздражает. Сегодня я познакомлю вас с некоторыми быстрыми приемами, позволяющими предотвратить автоматические гиперссылки в Excel.
Преобразование нескольких адресов электронной почты в гиперссылки в Excel
Если у вас есть список адресов электронной почты в виде обычного текста на листе, и теперь вы хотите преобразовать эти адреса электронной почты в гиперссылки, которые можно отправлять по электронной почте, щелкая адреса. Конечно, вы можете преобразовать их в адреса электронной почты с гиперссылками, но этот метод будет утомительным, если необходимо преобразовать несколько адресов. В этой статье я расскажу о некоторых хороших приемах для решения этой задачи.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы и хранение данных; Разделить содержимое ячеек; Объедините повторяющиеся строки и сумму / среднее значение… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Избранные и быстро вставляйте формулы, Диапазоны, диаграммы и изображения; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Группировка сводной таблицы по номер недели, день недели и другое … Показать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки, у которых есть формула / имя…
Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!












