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

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

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

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

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

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

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

2 ответа2

1

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

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

0

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

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

Вырежьте / Вставьте свой код там. Это должно работать просто отлично!

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

Public Function GetURL(HyperlinkCell As Range) as String

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .