Вам необходимо разместить свою функцию в стандартном модуле :
и тогда будет работать
У меня есть столбец текста, который все гиперссылки. Я хочу скопировать текст и 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? в моей таблице
Вы должны поместить свой код в обычный модуль:
Вырежьте / Вставьте свой код там. Это должно работать просто отлично!
Чтобы сделать ваши намерения более понятными, вы можете расширить заголовок своей функции, явно объявив его как Public
функцию (не указав, что это ничего не изменит, но некоторые люди тогда предполагают, что это неявно Private
), и установив тип возвращаемого значения String
:
Public Function GetURL(HyperlinkCell As Range) as String
Поскольку свойство Hyperlink содержит только строки, нет ничего плохого в том, чтобы сделать его явным в вашей UDF.