У Kerstine есть рабочий лист со множеством разных гиперссылок. Ей интересно, есть ли способ заменить только часть каждой ссылки.

Например, она может захотеть изменить любой экземпляр http://www.mysite.com/ на c: / documents / mycopy /. Если в ссылках есть что-то еще, то эту часть следует оставить. Так, например, если исходная ссылка http://www.mysite.com/thispage.html, она будет изменена на c: /documents/mycopy/thispage.html.

Это легко сделать с помощью макроса. Причина в том, что гиперссылки можно просматривать и изменять с помощью обычных строковых функций.

Следующий макрос предоставляет простой способ решения проблемы.

Sub EditHyperlinks()

Dim lnkH As Hyperlink     Dim sOld As String     Dim sNew As String

sOld = "http://www.mysite.com"

sNew = "c:/documents/mycopy/"



For Each lnkH In ActiveSheet.Hyperlinks         lnkH.Address = Replace(lnkH.Address, sOld, sNew)

lnkH.TextToDisplay = Replace(lnkH.TextToDisplay, sOld, sNew)

Next End Sub

Эта процедура проходит через все гиперссылки в текущем листе и при необходимости вносит изменения в каждую из них. И гиперссылка, и отображаемый текст изменяются соответствующим образом. Все, что вам нужно сделать, это внести изменения в строки sOld и sNew, чтобы указать, что вы ищете и чем хотите его заменить.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11081) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Changing_Portions_of_Many_Hyperlinks [Изменение частей многих гиперссылок].