Изменение огромного количества гиперссылок (Microsoft Excel)
У Венди есть один рабочий лист Excel, содержащий более 1200 гиперссылок на файлы TIFF. (Это гиперссылки, а не обычные ссылки.) Excel завис, и его пришлось закрыть, поэтому Эмили использовала автосохраненные файлы, чтобы восстановить ранее сохраненный файл. Теперь все ранее работавшие гиперссылки не работают. У нее были гиперссылки на изображения на общем сетевом диске, но автосохранение изменило гиперссылки на диск C :. Она задается вопросом, есть ли простой способ исправить их обратно на общий сетевой диск.
На первый взгляд может показаться, что вы можете использовать обычную функцию Excel «Найти и заменить», чтобы найти обозначение жесткого диска (как в file: // c 🙂 и заменить его сетевым диском (как в file: // shareddrive). Проблема в том, что этот подход решает только часть проблемы — он изменяет только отображаемую часть гиперссылки, но не саму гиперссылку. Единственный способ добраться до самой гиперссылки — это использовать макрос.
Предполагая, что все гиперссылки, которые необходимо изменить, находятся на одном листе, вы можете использовать следующий макрос:
Sub FixHyperlinks1() Dim wks As Worksheet Dim hl As Hyperlink Dim sOld As String Dim sNew As String Set wks = ActiveSheet sOld = "c:\" sNew = "S:\Network\" For Each hl In wks.Hyperlinks hl.Address = Replace(hl.Address, sOld, sNew) Next hl End Sub
Все, что вам нужно сделать, это изменить значения, присвоенные переменным sOld и sNew. Если вы получаете сообщение об ошибке при попытке запустить макрос — ошибка строки, содержащей функцию «Заменить», — это потому, что функция «Заменить» доступна не во всех версиях Excel. В этом случае вместо этого следует использовать следующий макрос:
Sub FixHyperlinks2() Dim wks As Worksheet Dim hl As Hyperlink Dim sOld As String Dim sNew As String Set wks = ActiveSheet sOld = "c:\" sNew = "S:\Network\" For Each hl In wks.Hyperlinks hl.Address = Application.WorksheetFunction. _ Substitute(hl.Address, sOld, sNew) Next hl End Sub
Обратите внимание, что единственная разница заключается в использовании функции «Заменить лист».
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (8622) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и более поздние версии) здесь:
link: / excelribbon-Changing_Huge_Numbers_of_Hyperlinks [Изменение огромного числа гиперссылок]
.