Excel 2016. КАК преобразовать ячейку гиперссылки в текст?

Excel 2016. КАК преобразовать ячейку гиперссылки в текст?

У меня есть столбец текста, который является гиперссылками. Я хочу скопировать текст и URL в отдельные поля.

Например, в ячейке (A1) есть «Apple» (гиперссылка наhttp://www.apple.com)

Я хочу поместить значения в D и E.

D1 будет содержать «Apple»

E1 будет содержать URLhttp://www.apple.com

Function GetURL(HyperlinkCell As Range)
    GetURL = Replace(HyperlinkCell.Hyperlinks(1).Address, "file:", "")
End Function

Я попробовал это в ThisWorkbook (VBA) и получил такие результаты:#ИМЯ?в моей таблице

решение1

Вам необходимо поместить вашу функцию встандартный модуль:

введите описание изображения здесь

и тогда это будет работать:

введите описание изображения здесь

решение2

Вам необходимо поместить свой код в обычный модуль:

  • Щелкните правой кнопкой мыши по вашему проекту в VBE.
  • Вставка: Модуль
  • (По желанию) дайте вашему модулю более осмысленное имя.

Вырежьте/вставьте свой код туда. Тогда все должно работать отлично!

Чтобы сделать свои намерения немного более ясными, вы можете расширить заголовок функции, явно объявив ее как Publicфункцию (не говоря уже о том, что это ничего не изменит, но некоторые люди предполагают, что это неявно Private) и установив возвращаемый тип на String:

Public Function GetURL(HyperlinkCell As Range) as String

Поскольку свойство Hyperlink содержит только строки, нет ничего плохого в том, чтобы явно указать его в вашей UDF.

Связанный контент