Sie müssen Ihre Funktion in einem Standardmodul platzieren :
und dann wird es funktionieren:
Ich habe eine Textspalte, die alle Hyperlinks sind. Ich möchte den Text und die URL in separate Felder kopieren.
Für Beispiel hat Zelle (A1) "Apple" (Hyperlink zu http://www.apple.com ).
Ich möchte die Werte in D und E setzen
D1 würde "Apple" enthalten
E1 würde die URL http://www.apple.com enthalten
Function GetURL(HyperlinkCell As Range) GetURL = Replace(HyperlinkCell.Hyperlinks(1).Address, "file:", "") End Function
Ich habe dies in ThisWorkbook (VBA) ausprobiert und die Ergebnisse als #NAME erhalten? in meiner tabelle
Sie müssen Ihren Code in einem normalen Modul platzieren:
Dort den Code ausschneiden / einfügen. Es sollte dann gut funktionieren!
Um Ihre Absichten etwas klarer zu machen, können Sie Ihren Funktionsheader erweitern, indem Sie ihn explizit als Public
Funktion deklarieren (wenn Sie nicht angeben, dass nichts geändert wird, aber einige Benutzer davon ausgehen, dass dies implizit ist Private
) und indem Sie den Rückgabetyp auf Folgendes setzen String
:
Public Function GetURL(HyperlinkCell As Range) as String
Da die Hyperlink-Eigenschaft nur Zeichenfolgen enthält, ist es nicht falsch, sie in Ihrer UDF explizit zu machen.