Как массово изменить гиперссылки в excel
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Пример замены гиперссылок.xls (58,0 KiB, 10 267 скачиваний)
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Пример замены гиперссылок.xls (58,0 KiB, 10 267 скачиваний)
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Пример замены гиперссылок.xls (58,0 KiB, 10 267 скачиваний)
Пакетное переименование сразу нескольких гиперссылок в Excel
1 Переименовать гиперссылки на основе текста в другом столбце
2 Переименуйте все гиперссылки с одинаковым отображаемым текстом
Переименование гиперссылок на основе текста в другом столбце
Если вы хотите изменить отображаемый текст гиперссылок на основе значений другого столбца, вы можете использовать формулу ниже
В формуле A1 - это расположение адреса, B1 - отображаемый текст.
Нажмите Enter и перетащите маркер автозаполнения над ячейками, чтобы применить эту формулу.
Возможно, вас заинтересует эта утилита:
Пакетное преобразование гиперссылок в текстовое содержимое или извлечение гиперссылок из ячеек
Переименуйте все гиперссылки с одинаковым отображаемым текстом
Если вы хотите переименовать все гиперссылки с одинаковым отображаемым текстом, вы можете использовать функцию «Найти и заменить».
1. Выберите все гиперссылки, отображаемый текст которых вы хотите изменить, и нажмите Ctrl + Н тo отображать Найти и заменить Диалог.
2. Нажмите Доступные опции кнопку, чтобы развернуть диалоговое окно, затем щелкните Формат.
3. Затем в Найти формат диалога под шрифт вкладка, выберите Один из раскрывающегося списка подчеркивание. Нажмите OK вернуться в Найти и заменить Диалог.
4. Тип * в Найти то, что текстовое поле, затем в Заменить текстовое поле, введите нужный текст для отображения. Нажмите Заменить всеи нажмите OK > Закрыть закрыть все диалоги.
Теперь все гиперссылки переименованы в одинаковый текст.
Другие операции (статьи), связанные с гиперссылкой
Быстро создать гиперссылку на конкретный лист в другой книге
В Excel мы можем создать гиперссылку на веб-адрес, чтобы быстро открыть веб-сайт, щелкнув его, но пробовали ли вы когда-нибудь создать гиперссылку на конкретный рабочий лист в другой книге? В этой статье вы можете найти решение.
Создать гиперссылку на диаграмму в Excel
В Excel создать гиперссылку легко для большинства пользователей, но пробовали ли вы когда-нибудь создать гиперссылку на диаграмму в Excel, что означает щелчок по значению, а затем ссылку на диаграмму на другом листе? Как правило, нет возможности напрямую создать гиперссылку на диаграмму, но здесь, в этой статье, я могу представить интересный способ ее решения.
Запретить / отключить автоматические гиперссылки в Excel
Как все мы знаем, Excel автоматически создает интерактивные гиперссылки, когда мы вводим веб-адреса в ячейки. Может быть, иногда это немного раздражает. Сегодня я познакомлю вас с некоторыми быстрыми приемами, позволяющими предотвратить автоматические гиперссылки в Excel.
Преобразование нескольких адресов электронной почты в гиперссылки в Excel
Если у вас есть список адресов электронной почты в виде обычного текста на листе, и теперь вы хотите преобразовать эти адреса электронной почты в гиперссылки, которые можно отправлять по электронной почте, щелкая адреса. Конечно, вы можете преобразовать их в адреса электронной почты с гиперссылками, но этот метод будет утомительным, если необходимо преобразовать несколько адресов. В этой статье я расскажу о некоторых хороших приемах для решения этой задачи.
Как изменить сразу несколько путей гиперссылок в Excel?
Для некоторых целей вы можете создать несколько гиперссылок для своих данных на листе, и все гиперссылки связаны с одним и тем же путем или адресом файла, но теперь вам нужно заменить этот путь гиперссылки на другой адрес за раз. Изменение пути гиперссылок по отдельности может тратить много времени, есть ли быстрый способ решить эту проблему?
Одновременное изменение нескольких путей гиперссылок на листе с помощью кода VBA
Предположим, у вас есть список данных с теми же гиперссылками, что и на следующем снимке экрана, и с кодом VBA, вы можете быстро заменить старый путь к файлу или адрес на листе новым.
1. Удерживая нажатой ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модули, и вставьте следующий макрос в Окно модуля.
Код VBA: изменить сразу несколько путей гиперссылок
3, Затем нажмите F5 ключ для запуска этого кода и окно подсказки, позволяющее ввести старый адрес гиперссылки в Старый текст коробка. Смотрите скриншот:
4. Нажмите OK, и появится другое окно подсказки, напоминающее вам о вводе нового адреса гиперссылки, который вы хотите использовать.
5, Затем нажмите OK, все те же старые адреса гиперссылок были сразу заменены на новые. Смотрите скриншоты:
Одновременное изменение нескольких путей гиперссылок на листе / книге / нескольких листах / выделении с помощью удивительной функции
Если вы хотите заменить пути гиперссылок из выделенного фрагмента, нескольких листов, текущей рабочей книги или нескольких книг, как вы могли бы это сделать? С участием Найти и заменить особенность Kutools for Excel, вы быстро справитесь с этой задачей.
Примечание: Чтобы применить это Найти и заменить утилиту, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.
После установки Kutools for Excel, пожалуйста, сделайте так:
1. Нажмите Кутулс > Навигация, см. снимок экрана:
2. В открытом Навигация панели, нажмите Найти и заменить в Найти и заменить панели, нажмите Замените tab, а затем выполните следующие операции:
- Введите текст старой гиперссылки, которую хотите найти, в Найти то, что текстовое поле, а затем введите новый текст гиперссылки, который вы хотите заменить, в поле Заменить текстовое окно;
- Укажите область, в которой вы хотите найти, и замените путь гиперссылки из В раскрывающийся список;
- Затем выберите «Гиперссылки» в раскрывающемся списке «Искать в»;
- Наконец, нажмите Найти все Кнопка, все соответствующие ячейки, содержащие конкретный текст гиперссылки, перечислены в нижнем списке.
3, Затем нажмите Заменить все кнопки старые пути гиперссылок были сразу изменены на новые, см. снимок экрана:
Читайте также: