Ich habe eine Textspalte, die nur aus Hyperlinks besteht. Ich möchte den Text und die URL in separate Felder kopieren.
Beispielsweise enthält Zelle(A1) "Apple" (Hyperlink zuhttp://www.apple.com)
Ich möchte die Werte in D und E eingeben
D1 würde "Apple" enthalten
E1 würde die URL enthaltenhttp://www.apple.com
Function GetURL(HyperlinkCell As Range)
GetURL = Replace(HyperlinkCell.Hyperlinks(1).Address, "file:", "")
End Function
Ich habe dies in ThisWorkbook (VBA) versucht und habe die Ergebnisse erhalten als#NAME?in meiner Tabelle
Antwort1
Antwort2
Sie müssen Ihren Code in einem normalen Modul platzieren:
- Klicken Sie mit der rechten Maustaste auf Ihr Projekt im VBE
- Einfügen: Modul
- (Optional) Geben Sie Ihrem Modul einen sinnvolleren Namen
Schneiden Sie Ihren Code aus und fügen Sie ihn dort ein. Dann sollte es problemlos funktionieren!
Um Ihre Absichten etwas deutlicher zu machen, können Sie Ihren Funktionsheader erweitern, indem Sie ihn explizit als Public
Funktion deklarieren (ohne zu sagen, dass sich dadurch nichts ändert, aber manche Leute gehen dann davon aus, dass dies implizit der Fall ist Private
) und indem Sie den Rückgabetyp wie folgt festlegen String
:
Public Function GetURL(HyperlinkCell As Range) as String
Da die Hyperlink-Eigenschaft nur Zeichenfolgen enthält, ist es nicht verkehrt, sie in Ihrer UDF explizit zu machen.