Мезга имеет ряд ячеек, содержащих гиперссылки. Эти гиперссылки состоят из таких слов, как «щелкните здесь» или «дополнительная информация». Другими словами, каждая гиперссылка содержит отображаемый текст, отличный от базового URL-адреса, который активируется при нажатии на ссылку. Mezga интересуется, есть ли способ без использования макроса извлечь базовый URL-адрес для каждой из этих гиперссылок и поместить этот URL-адрес в другую ячейку.

Без использования макросов вы можете сделать это:

  1. Щелкните гиперссылку правой кнопкой мыши. Вы увидите появившееся контекстное меню.

  2. В контекстном меню выберите «Изменить гиперссылку». Excel отображает диалоговое окно «Изменить гиперссылку». (См. Рис. 1.)

  3. Выделите и скопируйте (Ctrl + C) весь URL-адрес из поля Address диалогового окна.

  4. Нажмите Esc, чтобы закрыть диалоговое окно «Редактировать гиперссылку».

  5. Вставьте URL-адрес в любую желаемую ячейку.

Обратите внимание, что это для одной гиперссылки. Если у вас есть целая куча гиперссылок на листе и вы хотите восстановить URL-адреса, вам нужно сделать это для каждой гиперссылки. Очевидно, это может очень быстро надоесть.

Лекарство от скуки, нравится им или нет, — это макрос. С помощью макроса получить доступ к базовому URL для гиперссылки — это детская игра. Все, что нужно сделать макросу, — это обратить внимание на свойство Address гиперссылки.

Ниже приведен пример макроса, который будет находить каждую гиперссылку на листе, извлекать каждый URL-адрес и вставлять этот URL-адрес в ячейку непосредственно справа от гиперссылки.

Sub ExtractHL()

Dim HL As Hyperlink     For Each HL In ActiveSheet.Hyperlinks         HL.Range.Offset(0, 1).Value = HL.Address     Next End Sub

Вместо макроса «грубой силы» вы также можете создать определяемую пользователем функцию, которая будет извлекать и возвращать URL-адрес любой гиперссылки, на которую она была указана:

Function GetURL(rng As Range) As String     On Error Resume Next     GetURL = rng.Hyperlinks(1).Address End Function

В этом случае вы можете разместить его там, где хотите. Если вы хотите, например, чтобы URL-адрес гиперссылки в A1 был указан в ячейке C25, то в ячейку C25 вы должны ввести следующую формулу:

=GetURL(A1)

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

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

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

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

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

link: / excel-Extracting_URLs_from_Hyperlinks [Извлечение URL-адресов из гиперссылок].