У меня есть столбец текста, который является гиперссылками. Я хочу скопировать текст и 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.