Хитрости »
30 Май 2011 156266 просмотров
Как массово изменить гиперссылки?
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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, 11 337 скачиваний)
Так же см.:
Что такое гиперссылка?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
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.
@Qairat
frontend developer, angular 2+
Всем Привет!
Такая ситуация. Есть такой файл:
И везде на гипперссылках написано слово parsing/Licenses/Details/и свое значение.
Теперь мне надо поменять там слово 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>.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА, то все просто:
- выделяем диапазон с гиперссылками;
- жмем 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Скачать пример: Пример замены гиперссылок.xls (58,0 KiB, 8 817 скачиваний)
За материал поклон Дмитрию: https://www.excel-vba.ru/chto-umeet-excel/kak-massovo-izmenit-giperssylki/
Join @AdmNtsRu on Telegram
Смотрите также:
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 |
Skip to content
В статье разъясняется, как сделать гиперссылку в 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.
- Щелкните ячейку правой кнопкой мыши и выберите «Гиперссылка…» ( «Ссылка» в последних версиях) в контекстном меню.
Рис 1.
- Нажмите комбинацию клавиш
Ctrl + К
.
А теперь, в зависимости от того, какую ссылку вы хотите создать, перейдите к одному из следующих примеров:
- Гиперссылка на другой документ
- Гиперссылка на веб-страницу (URL)
- Гиперссылка на ячейку в текущей книге
- Гиперссылка на новую книгу
- Гиперссылка на адрес электронной почты
Гиперссылка на другой файл
Чтобы сделать гиперссылку, которая будет указывать на другой документ, например другой файл Excel, документ Word или презентацию PowerPoint, откройте диалоговое окно «Вставка гиперссылки» в Excel и выполните следующие действия:
- На левой панели в разделе «Связать с:» выберите «файлом или веб-страницей».
- В списке «Искать в» перейдите к нужному местоположению, а затем выберите сам файл.
- В поле «Текст» введите то, что должно отображаться в ячейке («Книга1» в этом примере). Если не вводить ничего, то по умолчанию будет отображаться имя выбранного ранее объекта.
- При необходимости нажмите кнопку «Подсказка…» в правом верхнем углу и введите текст, который будет отображаться, когда пользователь наводит указатель мыши на гиперссылку. В данном примере это может быть «Перейти к Книга1 в Гиперссылках».
- Нажмите «ОК».
Гиперссылка вставляется в выбранную ячейку и выглядит точно так, как вы ее настроили:
Чтобы сделать ссылку на определенный лист или ячейку, нажмите кнопку «Закладка…» в правой части диалогового окна «Вставка гиперссылки», затем выберите нужный рабочий лист и введите адрес целевой ячейки в поле «Введите адрес ячейки». Нажмите «ОК».
Чтобы создать ссылку на именованный диапазон, выберите его в списке Определенные имена, как показано ниже:
Добавить гиперссылку на веб-адрес (URL)
Чтобы сделать гиперссылку на сайт, откройте диалоговое окно «Вставка гиперссылки» и выполните следующие действия:
- В разделе «Связать с:» выберите «файлом или веб-страницей».
- Нажмите кнопку «Обзор Интернета», затем откройте сайт, на который вы хотите сослаться, переключитесь обратно в Excel, не закрывая веб-браузер.
Excel автоматически вставит адрес веб-сайта и текст для отображения. Вы можете изменить этот текст, чтобы он отображался так, как вы хотите. При необходимости введите всплывающую подсказку и нажмите «ОК», чтобы добавить созданную гиперссылку.
Кроме того, вы можете просто скопировать URL-адрес страницы сайта в буфер обмена, а потом открыть диалоговое окно «Вставка гиперссылки» и просто вставить URL-адрес в поле «Адрес».
Гиперссылка на лист или ячейку в текущей книге
Один из способов, как вы можете эффективно использовать гиперссылки электронных таблиц, — это создать оглавление вашей рабочей книги. Внутренние гиперссылки Excel помогут вам быстро перейти к нужной части книги, особенно если в ней много листов и больших таблиц.
Первый способ создания гиперссылки на лист внутри одной книги — использование команды «Гиперссылка».
- Выберите ячейку, в которую вы хотите вставить гиперссылку на ячейку или на файл.
- Щелкните правой кнопкой мыши ячейку и выберите пункт «Ссылка» в контекстном меню.
На экране появится диалоговое окно «Вставка гиперссылки». - Выберите «Место в документе» в разделе «Связать с», если ваша задача — связать ячейку с определенным местом в той же книге. Или же выберите нужный файл, как мы это уже делали ранее.
- Укажите рабочий лист, на который вы хотите сослаться, в поле Или выберите место в этом документе.
- Введите адрес ячейки в поле Введите ссылку на ячейку, если вы хотите указать на определенную ячейку другого рабочего листа. Получится гиперссылка на ячейку в Excel. Можно это не делать, тогда по ссылке просто откроется этот лист.
- Введите значение или имя в поле Текст, чтобы как-то назвать гиперссылку в ячейке.
- Нажмите ОК .
Текст в ячейке будет подчеркнут и выделен синим цветом. Это означает, что ячейка содержит гиперссылку. Чтобы проверить, работает ли она, просто наведите указатель мыши на этот подчеркнутый текст и щелкните по нему, чтобы перейти в указанное место.
Гиперссылка на другую книгу Excel
Помимо ссылки на существующие файлы, вы можете создать гиперссылку на новый файл Excel. Вот как:
- В разделе «Связать с» щелкните значок «Новый документ».
- В поле Текст введите текст ссылки, который будет отображаться в ячейке.
- В поле Имя нового документа введите новое имя книги, которую вы создадите.
- В поле Адрес проверьте место, где будет сохранен созданный файл. Если вы хотите изменить расположение по умолчанию, нажмите кнопку Изменить.
- В разделе Когда вносить правку выберите нужный вариант редактирования.
- Нажмите ОК .
Гиперссылка для создания сообщения электронной почты
Помимо ссылок на различные документы, функция гиперссылки Excel позволяет отправлять сообщения электронной почты прямо с рабочего листа. Чтобы это сделать, выполните следующие действия:
- В разделе «Связать с» выберите значок «Электронная почта».
- В поле Адрес электронной почты введите адрес почты получателя или несколько адресов, разделенных точкой с запятой. Кстати, «mailto:» вводить не нужно, Excel сам подставит этот префикс.
- При желании введите тему сообщения в поле Тема. Имейте в виду, что некоторые браузеры и почтовые клиенты могут не распознавать строку темы.
- В поле Текст введите нужный текст ссылки.
- При необходимости нажмите кнопку «Подсказка…» и введите нужный текст (подсказка будет отображаться при наведении указателя мыши на гиперссылку).
- Нажмите «ОК».
Совет. Самый быстрый способ сделать гиперссылку на конкретный адрес электронной почты — это набрать адрес электронной почты прямо в ячейке на вашем рабочем листе. Как только вы нажмете клавишу Enter, Excel автоматически преобразует его в интерактивную гиперссылку.
Как создавать ссылки с помощью формулы ГИПЕРССЫЛКА
Если вы один из тех профессионалов Excel, которые используют формулы для решения большинства задач, вы можете использовать функцию ГИПЕРССЫЛКА, которая специально разработана для вставки гиперссылок в Excel. Это особенно полезно, когда вы собираетесь создавать, редактировать или удалять несколько ссылок одновременно.
Синтаксис формулы ГИПЕРССЫЛКА следующий:
ГИПЕРССЫЛКА( адрес ; [имя] )
Где:
- адрес — это путь к целевому документу или веб-странице.
- имя — это текст ссылки, который будет отображаться в ячейке.
Например, чтобы сделать гиперссылку с названием «Исходные данные», которая открывает Лист2 в книге с именем «Исходные данные», хранящейся в папке «Файлы Excel» на диске D, используйте следующую формулу:
=ГИПЕРССЫЛКА(«[D:Excel filesИсходные данные.xlsx]Лист2!A1»; «Исходные данные»)
Подробное объяснение аргументов функции ГИПЕРССЫЛКА и примеры формул для создания различных типов ссылок см. в статье Как использовать функцию гиперссылки в Excel .
Вставьте ссылку, перетащив ячейку
Самый быстрый способ создания гиперссылок внутри одной книги — использование метода перетаскивания. Позвольте мне показать вам, как это работает.
В качестве примера я возьму книгу из двух листов и создам гиперссылку на листе 1, которая ведёт на ячейку на листе 2.
Примечание. Убедитесь, что книга сохранена, потому что этот метод не работает в новых книгах.
- Выберите ячейку назначения гиперссылки на листе 2.
- Наведите указатель мыши на одну из границ ячейки и щелкните правой кнопкой мыши.
- Удерживая правую кнопку, переместите указатель мыши к вкладкам листов.
- Нажмите клавишу
ALT
и наведите указатель мыши на вкладку Лист 1.Нажатая клавиша
ALT
позволит переместиться на другой лист. Как только лист 1 активирован, вы можете перестать удерживать клавишу. - Продолжайте перетаскивать курсор мыши в то место, куда вы хотите вставить гиперссылку.
- Отпустите правую кнопку мыши, чтобы появилось всплывающее меню.
- Выберите «Создать гиперссылку».
После этого в ячейке появится гиперссылка. Когда вы нажмете на нее, вы сразу переместитесь на ячейку назначения на листе 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
Вы можете изменить существующую гиперссылку в своей книге, изменив ее назначение, внешний вид или текст, используемый для ее представления.
Поскольку в этой статье речь идет о гиперссылках между электронными таблицами одной и той же книги, назначением гиперссылки в этом случае является определённая ячейка из другой электронной таблицы. Если вы хотите изменить место назначения гиперссылки, вам нужно изменить ссылку на ячейку или выбрать другой лист. Вы можете сделать и то, и другое, если это необходимо.
- Щелкните правой кнопкой мыши гиперссылку, которую хотите изменить.
- Выберите «Редактировать гиперссылку» во всплывающем меню.
На экране появится диалоговое окно «Изменение гиперссылки». Вы видите, что оно выглядит точно так же, как диалоговое окно «Вставка гиперссылки», и имеет те же поля.
Примечание. Есть еще как минимум два способа открыть гиперссылку. Вы можете нажать комбинацию Ctrl + К
или кнопку «Гиперссылка» в группе «Ссылки» на вкладке меню «ВСТАВКА». Но не забудьте перед этим выделить нужную ячейку.
- Обновите информацию в соответствующих полях диалогового окна «Изменение гиперссылки».
- Нажмите «ОК» и проверьте, куда сейчас ведёт гиперссылка.
Примечание. Если вы использовали формулу для добавления гиперссылки в Excel, вам необходимо открыть и отредактировать её, чтобы изменить место назначения. Выберите ячейку, содержащую ссылку, и поместите курсор в строку формул, чтобы отредактировать.
Здесь у вас могут возникнуть некоторые сложности. Мы привыкли, что для того, чтобы открыть и внести изменения в содержимое ячейки, достаточно кликнуть на ней мышкой, чтобы перейти в режим редактирования.
Кликнув ячейку, содержащую гиперссылку, вы не откроете её, а перейдете к месту назначения ссылки, т. е. к целевому документу или веб-странице. Чтобы выбрать для редактирования ячейку, не переходя к расположению ссылки, щелкните ячейку и удерживайте кнопку мыши, пока указатель не превратится в крестик (курсор выбора Excel), а уж затем отпустите кнопку.
Если гиперссылка занимает только часть ячейки (т. е. если ваша ячейка шире текста ссылки), наведите указатель мыши на пустое место, и как только он изменится с указывающей руки на крест, щелкните ячейку:
Еще один способ выбрать ячейку без открытия гиперссылки — выбрать соседнюю ячейку и с помощью клавиш со стрелками установить курсор на ячейке со ссылкой.
Чтобы изменить сразу несколько формул гиперссылок, используйте функцию Excel «Заменить все», как показано в этом совете.
Как изменить внешний вид гиперссылки
Чаще всего гиперссылки отображаются в виде подчеркнутого текста синего цвета. Если типичный вид текста гиперссылки кажется вам скучным и вы хотите выделиться из толпы, читайте ниже, как это сделать:
- Перейдите в группу Стили на вкладке ГЛАВНАЯ .
- Откройте список «Стили ячеек».
- Щелкните правой кнопкой мыши на кнопке «Гиперссылка», чтобы изменить внешний вид. Или щелкните правой кнопкой мыши на «Открывавшаяся гиперссылка», если нужно изменить вид ссылок, по которым уже переходили.
- Выберите опцию «Изменить» в контекстном меню.
- Нажмите «Формат» в диалоговом окне «Стили».
- Внесите необходимые изменения в диалоговом окне «Формат ячеек». Здесь вы можете изменить выравнивание и шрифт гиперссылки или добавить цвет заливки.
- Когда вы закончите, нажмите OK.
- Убедитесь, что все изменения отмечены в разделе «Стиль включает» в диалоговом окне «Стиль».
- Нажмите ОК.
Теперь вы можете наслаждаться новым индивидуальным стилем гиперссылок в своей книге. Обратите внимание, что внесенные вами изменения влияют на все гиперссылки в текущей книге. Вы не можете изменить внешний вид только одной гиперссылки.
Как убрать гиперссылку в Excel
Удаление гиперссылок в Excel выполняется в два клика. Вы просто щелкаете ссылку правой кнопкой мыши и выбираете «Удалить гиперссылку» в контекстном меню.
Это удалит интерактивную гиперссылку, но сохранит текст ссылки в ячейке. То есть, гиперссылка превратится в текст. Чтобы также удалить текст ссылки, щелкните ячейку правой кнопкой мыши и выберите «Очистить содержимое» .
Совет. Чтобы удалить сразу все или несколько выбранных гиперссылок, используйте функцию «Специальная вставка», как показано в статье «Как удалить несколько гиперссылок в Excel». Также там описаны и другие способы удаления.
Как извлечь веб-адрес (URL) из гиперссылки Excel
Есть два способа извлечь URL-адрес из гиперссылки в Excel: вручную и программно.
Извлечь URL-адрес из гиперссылки вручную
Если у вас всего пара гиперссылок, вы можете быстро извлечь их назначения, выполнив следующие простые шаги:
- Выберите ячейку, содержащую гиперссылку.
- Откройте диалоговое окно «Редактировать гиперссылку», нажав
Ctrl + К
или щелкните гиперссылку правой кнопкой мыши и выберите «Редактировать гиперссылку». - В поле Адрес выберите URL-адрес и нажмите
Ctrl + С
, чтобы скопировать его.
- Нажмите Esc или OK, чтобы закрыть окно редактирования.
- Вставьте скопированный 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-адреса будут отключены при временном пропадании интернета. Чтобы отключить этот параметр, выполните следующие действия:
- В Excel 2010 и новее щелкните Файл > Параметры. В Excel 2007 нажмите кнопку Office > Параметры Excel.
- На левой панели выберите «Дополнительно».
- Прокрутите вниз до раздела «Общие» и нажмите «Параметры Интернета…».
- В диалоговом окне «Параметры веб-документа» перейдите на вкладку «Файлы», снимите флажок «Обновлять ссылки при сохранении» и нажмите «ОК» .
Гиперссылки на основе формул не работают
Симптомы. Ссылка, созданная с помощью функции ГИПЕРССЫЛКА, не открывается или в ячейке отображается значение ошибки.
Решение. Большинство проблем с гиперссылками на основе формул вызваны несуществующим или неправильным путем, указанным в аргументе адрес. Перейдите по ссылкам ниже, чтобы узнать, как правильно создать формулу гиперссылки. Дополнительные шаги по устранению неполадок см. в разделе Функция Excel ГИПЕРССЫЛКА не работает.
Вот как вы можете создавать, редактировать и удалять гиперссылки в Excel. Благодарю вас за чтение.
Другие статьи по теме:
Содержание
- Как массово изменить гиперссылки?
- Как массово изменить гиперссылки?
- Как массово изменить гиперссылки в Excel?
- Все гораздо сложнее, если гиперссылки были созданы через стандартное меню:
- Блог Антона Палихова
- Excel, Word, OneNote, книжки, D&D, Roll20, Discord, анализ, оптимизация, развлечения
- КАК МАССОВО ИЗМЕНИТЬ ГИПЕРССЫЛКИ?
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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, 11 249 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Источник
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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, 11 249 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Источник
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе Excel.
Существуют ситуации, когда на листе есть много гиперссылок(если еще на знакомы с гиперссылками на различные папки или интернет ресурсы. И иногда случаются ситуации когда адреса этих гиперссылок надо поменять. Как правило это происходит если либо домен сменился, либо на сервере добавилась директория и эти изменения надо отразить в гиперссылках, либо все просто было перемещено в другую папку. Для примера возьмем такие исходные данные: надо заменить текст ссылки .excel_vba на текст excel-vba .
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА, то все просто:
- выделяем диапазон с гиперссылками;
- жмем Ctrl+H.
- Найти: .excel_vba
- Заменить на: excel-vba
- Жмем кнопочку «Параметры» и устанавливаем Область поиска — Формулы и снимаем галочку «Ячейка целиком«
- Жмем «Заменить все«
Теперь адреса ссылок должны поменяться.
правый клик мыши на ячейке — Гиперссылка. Тут фокус с заменой через 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.
Прежде чем начать замену необходимо еще определить каким способом установлена гиперссылка. Если установлена через формулу ГИПЕРССЫЛКА, то все просто:
- выделяем диапазон с гиперссылками;
- жмем 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
тогда надо будет выделить объекты на листе, для которых необходимо заменить гиперссылки, и запустить макрос.
Источник
Для некоторых целей вы можете создать несколько гиперссылок для своих данных на листе, и все гиперссылки связаны с одним и тем же путем или адресом файла, но теперь вам нужно заменить этот путь гиперссылки на другой адрес за раз. Изменение пути гиперссылок по отдельности может тратить много времени, есть ли быстрый способ решить эту проблему?
Одновременное изменение нескольких путей гиперссылок на листе с помощью кода 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-дневная гарантия возврата денег.
Вкладка 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