Хитрости »
30 Май 2011 156200 просмотров
Как массово изменить гиперссылки?
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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 331 скачиваний)
Так же см.:
Что такое гиперссылка?
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
milana_1993 Пользователь Сообщений: 8 |
Открываю Microsoft Excel 2003, далее проверяю параметры стиля ссылок R1C1: кнопка отжата. С параметрами все в порядке. Нажимаю открыть документ ранее созданный и так же проверяю параметр «Стиль ссылок R1C1», но уже стоит галочка. С блоком документов такое происходит, открываешь другие все нормально работает. Подскажите в чем проблема? Как можно исправить разом, а не пересохранять каждый документ отдельно. Изменено: milana_1993 — 23.08.2018 14:39:54 |
ivanok_v2 Пользователь Сообщений: 712 |
стиль ссылок R1C1: сохраняется в настройках файла |
milana_1993 Пользователь Сообщений: 8 |
То есть эти файлы только в ручную можно уже исправить? А из за чего он в принципе сменил стиль,если в самом Excel в настройках стиль ссылок R1C1 отжат. |
ivanok_v2 Пользователь Сообщений: 712 |
milana_1993, нужно снять галочку и сохранить файл |
milana_1993 Пользователь Сообщений: 8 |
ivanok_v2, Это я поняла как сделать. Вопрос остался в том, почему так произошло, чтоб в будущем такой проблемы не возникало. Просто теперь придется кучу файлов исправлять и убирать эту галочку. |
vikttur Пользователь Сообщений: 47199 |
И не только. |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#7 23.08.2018 14:58:43
Если кто-то у себя на ПК сохранил файл с установленным стилем R1C1, а потом переслал Вам, то после открытия такого файла у себя на ПК стиль ссылок для всех открытых в этот момент файлов на Вашем ПК будет сменен на R1C1. Связано с тем, что этот стиль имеет преимущество и некоторые особенности(в том числе при создании имен). Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
||
milana_1993 Пользователь Сообщений: 8 |
vikttur, Да я проверила, и действительно меняет стиль. А кто нибудь подскажет как исправить эту ошибку? Чтоб смены стиля не происходило |
Отменить никак. Поищите по форуму — приводилось решение для автосмены ссылок при открытии файла. еще можно просто сделать кнопочку, которая будет менять стиль одним нажатием. Есть у меня такая надстройка: Сменить стиль ссылок Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
milana_1993 Пользователь Сообщений: 8 |
|
milana_1993 Пользователь Сообщений: 8 |
Дмитрий(The_Prist) Щербаков, Не поскажите почему эта кнопочка не закрепляется на панели инструментов? При каждом открытии Excel она встает по центру документа. |
потому что каждый раз панель создается заново и Excel не запоминает её положение. Чтобы закрепить в конкретном месте надо перед закрытием запоминать Top и Left панели, а при открытии и создании считывать эти настройки и применять. P.S. У Вас Excel 2003, я так понимаю? Изменено: Дмитрий(The_Prist) Щербаков — 24.08.2018 13:21:30 Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
|
milana_1993 Пользователь Сообщений: 8 |
Дмитрий(The_Prist) Щербаков, да, не очень поняла по поводу Top и Left панели, а при открытии и создании считывать эти настройки и применять. Эту надстройку делаю для пользователей, и думаю им надоест каждый раз проделывать это. |
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
#14 24.08.2018 14:17:12
Если они вообще смогут )) Дмитрий говорит про программное запоминание и считывание. |
||
sokol92 Пользователь Сообщений: 4445 |
#15 24.08.2018 17:50:43 Для Excel 2003 можно кнопку надстройки временно добавлять к стандартному меню.
Владимир |
||
milana_1993 Пользователь Сообщений: 8 |
Дмитрий(The_Prist) Щербаков, подскажите пожалуйста, если надстройку устанавливать в портативную версию Excel на своем ПК, а далее нужно установить Excel с данной надстройкой другим пользователям. Почему у них пропадает эта надстройка? |
Дмитрий(The_Prist) Щербаков Пользователь Сообщений: 14181 Профессиональная разработка приложений для MS Office |
#17 28.08.2018 10:40:41 Если Portable нормальный и полный(с поддержкой VBA), то создайте какую-то папку на диске, закиньте в неё надстройку. Перейдите в Файл -Дополнительно -Общие -Каталог автозагрузки и укажите там эту папку. Теперь при запуске должна запускаться и надстройка. Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы… |
- Remove From My Forums
-
Question
-
All the Excel network links created in 2007/2003 change c:… when open up in Excel 2010. It is impossible to update them all manually as we have 10000+ files each contains
10000000000 links +.The file and links work ok from a Windows XP machine with Excel 2007.
For example:
G:FinanceFinance Drive — RestructuredReportingFY10 is replaced by C:UsersnsapalaAppDataRoamingMicrosoftExcelXLSTART
We have changed the startup location but it didn’t seem to fix the issue.
Help Please!!!..Questions or ideas very much welcome.
-
Edited by
Thursday, August 26, 2010 7:31 PM
-
Edited by
Answers
-
Hello,
I created a source file in 2007, saved it to a mapped drive. I then created a destination file in 2007 that does a vlookup to the source file. saved and closed both so the destination vlookup has the mapped drive in the vlookup formula.
I then opened the destination file in Excel 2010, and it retained the correct path, and when I enabled external links, it updated properly.
I don’t know of any issues with linking, nor any changes to linking functionality in Excel 2010. I pinged some of my peers and the concurred that the only way we know of that this kind of thing could happen is if the file was opened from a local cache
location, such as from an email attachment or from a browser.Other things that you can look for are third party addins that interact with Excel, both Excel addins and COM addins.
Also, be sure to take a look at several files, including making sure that you check files that you are absolutely certain have not been previously opened in the new version.
I hope this helps. If you need further assistance on this, please open a support case with us. You can review assisted support options here:
http://support.microsoft.com/select/Default.aspx?target=assistance
Thanks,
Wendal Dorsey, MSFT
-
Marked as answer by
Wendal DorseyEditor
Thursday, September 2, 2010 9:04 PM
-
Marked as answer by
Excel для Microsoft 365 для Mac Excel 2019 для Mac Excel 2016 для Mac Excel для Mac 2011 Еще…Меньше
Если книга содержит ссылку на данные в книге или другом файле, перемещенного в другое место, вы можете исправить эту ссылку, обновив путь к исходный файл. Если вам не удалось найти документ, на который вы изначально ссылались, или нет доступа к нему, можно отключить в Excel обновление ссылки, отключив автоматическое обновление или удалив ссылку.
Важно:
связанный объект гиперссылки — это не одно и то же. Следующая процедура не позволит исправить неправиленные гиперссылки. Дополнительные информацию о гиперссылках см. в теме «Создание и изменение гиперссылки».
Исправление неправиленной ссылки
Внимание: Это действие нельзя отменить. Перед началом этой процедуры может потребоваться сохранить резервную копию книги.
-
Откройте книгу, которая содержит неверную связь.
-
На вкладке «Данные» нажмите кнопку «Изменить связи».
Команда «Изменить связи» недоступна, если книга не содержит ссылок.
-
В поле «Исходный файл» выберите неправиленную ссылку, которую вы хотите исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из
, удерживая нажатой
.
-
Выберите команду Смена источника.
-
Перейдите к расположению файла, содержащего связанные данные.
-
Выберите новый исходный файл и нажмите кнопку «Изменить источник».
-
Нажмите кнопку Закрыть.
Удаление неявной ссылки
При разрыве связи все формулы, которые ссылаются на исходный файл, преобразуются в их текущее значение. Например, если формула =СУММ([Budget.xls]Годовой! C10:C25) — 45, после того как связь не будет нарушена, формула будет преобразована в 45.
-
Откройте книгу, которая содержит неверную ссылку.
-
На вкладке «Данные» нажмите кнопку «Изменить связи».
Команда «Изменить связи» недоступна, если книга не содержит ссылок.
-
В поле «Исходный файл» выберите ненужную ссылку, которую нужно удалить.
Примечание: Чтобы удалить несколько ссылок, щелкните каждую из
, удерживая нажатой кнопку мыши.
-
Щелкните элемент Разорвать.
-
Нажмите кнопку Закрыть.
Важно:
связанный объект гиперссылки — это не одно и то же. Следующая процедура не позволит исправить неправиленные гиперссылки. Подробнее о гиперссылках: создание, изменение и удаление гиперссылки
Исправление неправиленной ссылки
Внимание: Это действие нельзя отменить. Перед началом этой процедуры может потребоваться сохранить резервную копию книги.
-
Откройте книгу, которая содержит неверную связь.
-
В меню Правка выберите пункт Связи.
Если книга не содержит ссылок, команда «Ссылки» недоступна.
-
В поле «Исходный файл» щелкните неправиленную ссылку, которую нужно исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из
, удерживая нажатой
.
-
Выберите команду Смена источника.
-
Выполните одно из следующих действий:
Задача
Необходимые действия
Исправление неправиленной ссылки на лист в другой книге
В диалоговом окне «Открытие» найдите книгу и нажмите кнопку «Изменить».
Исправление неправиленной ссылки на книгу или другой документ Office
Введите новое имя или расположение документа в поле «Изменить ссылки на текстовое поле» и нажмите кнопку «ОК».
Отключение автоматического обновления связанных данных
-
Откройте книгу, которая содержит неверную связь.
-
В меню Правка выберите пункт Связи.
Если книга не содержит ссылок, команда «Ссылки» недоступна.
-
В поле «Исходный файл» щелкните неправиленную ссылку, которую нужно исправить.
Примечание: Чтобы исправить несколько ссылок, щелкните каждую из
, удерживая нажатой
.
-
Нажмите Вручную.
Удаление неявной ссылки
При разрыве связи все формулы, ссылаясь на исходный файл, преобразуются в их текущее значение. Например, если формула =СУММ([Budget.xls]Годовой! C10:C25) — 45, после того как связь не будет нарушена, формула будет преобразована в 45.
-
Откройте книгу, которая содержит неверную связь.
-
В меню Правка выберите пункт Связи.
Если книга не содержит ссылок, команда «Ссылки» недоступна.
-
В поле «Исходный файл» щелкните ненужную ссылку, которую нужно удалить.
Примечание: Чтобы удалить несколько ссылок, щелкните каждую из
, удерживая нажатой кнопку мыши.
-
Щелкните элемент Разорвать.
См. также
Импорт данных из файла в формате CSV, HTML или текстового файла
Нужна дополнительная помощь?
Excel меняет путь к файлам с результатом ССЫЛКА |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |