Oleksandr Пользователь Сообщений: 14 |
Добрый день, например, корректный путь
Спасибо… |
New Пользователь Сообщений: 4581 |
Может просто обычной заменой (Ctrl+H) или гипперссылки так не заменяются? Я просто не вкурсе Изменено: New — 26.09.2020 11:52:46 |
Oleksandr Пользователь Сообщений: 14 |
#3 26.09.2020 12:26:17
обычная замена (Ctr+H) не может искать в путях гиперссылок, |
||
New Пользователь Сообщений: 4581 |
Приложите пример в Excel-файле, мы подумаем. https://www.excel-vba.ru/chto-umeet-excel/kak-massovo-izmenit-giperssylki/ Изменено: New — 26.09.2020 12:29:28 |
Oleksandr Пользователь Сообщений: 14 |
спасибо!!! этот макрос работает… а то у меня документ с большим количеством листов…и не удобно для каждого листа указывать диапазон для замены.. спасибо… |
New Пользователь Сообщений: 4581 |
Изменил макрос под вас. В коде прописал что менять на что. Макрос обработает в цикле все листы в книге. Макрос можно запускать на любой активной книге (главное, чтобы параллельно был открыт этот файл с макросом). Макрос запускается по Alt+F8 — Выполнить. Если надо другие пути менять, то измените в коде макроса текст что менять и на что менять (просмотреть изменить макрос можно по Alt+F11) Изменено: New — 26.09.2020 15:15:15 |
Oleksandr Пользователь Сообщений: 14 |
#7 26.09.2020 15:41:52 СПАСИБО!!! все работает…все ссылки изменились на корректные. |
Хитрости »
30 Май 2011 156272 просмотров
Как массово изменить гиперссылки?
В этой статье я покажу как можно быстро и качественно изменить адреса гиперссылок на листе 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
ссылки
статистика
- Remove From My Forums
-
Общие обсуждения
-
Здравствуйте.
Имеется Microsoft Office 2010 Standart. При работе в Excel по неустановленным причинам на нескольких компьютерах сети в различных файлах произвольным образом изменяется путь гиперрсылки с \srv.domain.localshare1.pdf на C:UsersuserAppDataRoamingMicrosoftExcelshare1.pdf.
Пользователь работает с файлом, все ссылки рабочие. Потом при очередном открытии файла часть изменяется уже на неисправные
Прошу помощи в решении проблемы.
Спасибо
-
Изменен тип
17 мая 2013 г. 13:28
-
Изменен тип
Excel для Microsoft 365 Word для Microsoft 365 Excel 2019 Word 2019 Excel 2016 Word 2016 Excel 2013 Word 2013 Excel 2010 Word 2010 Еще…Меньше
Примечание:
Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим
ссылку на оригинал (на английском языке)
.
Если вы используете автоматического создания гиперссылок и Word или Excel отображается только часть пути, вы можете изменить параметры, чтобы отображался полный путь гиперссылки.
-
Щелкните Файл > Параметры > Дополнительно.
-
Перейдите к разделу Общие и нажмите кнопку Параметры веб-документа > файлы.
-
Снимите флажок обновлять ссылки при сохранении.
Дополнительные сведения
Создание и изменение гиперссылок
Нужна дополнительная помощь?
- 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