2016-05-02 11 views
0

Ich habe eine Sammlung von Hyperlinks aus einer alten Excel-Tabelle. Ich versuche, Linktexte von jedem Hyperlink mit dieser FunktionExtrahieren von Linktexten aus Excel Hyperlinks

Funktion GetURL (RNG As Range) As String On Error Resume Next GetURL = rng.Hyperlinks (1) .Address End Function

zu extrahieren

Aber es auf dem alten Hyperlinks funktioniert nicht (diese Links klickbar sind und sie arbeiten) aber die Funktion

Befehl + k

verwenden, wenn neue Hyperlinks funktioniert eingefügt wurden

Der Unterschied, den ich zwischen den Verbindungen in beide Richtungen sind

erstellt sehe

Die alte Hyperlinks zeigt sich in der Bearbeitungsleiste als

= HYPERLINK ("http://www.genome.jp/kegg-bin/show_pathway?ko00620+C00058", "ko00620")

Und wenn ich Befehl + k zum Einfügen von Hyperlinks verwenden, zeigt die Bearbeitungsleiste nur den Linknamen.

Wie kann ich extrahieren Linktexte von

= HYPERLINK ("http://www.genome.jp/kegg-bin/show_pathway?ko00620+C00058", "ko00620") unter Verwendung von Makros, Excel VBA?

Ich sehe eine andere Frage und Antwort here, aber ich weiß nicht, wie diese Funktion implementiert wird.

+0

Funktion 'HyperLinkText' in den angegebenen Link erwähnt die Sie erwähnt haben, muss auf die gleiche Art und Weise verwendet werden, wie Sie verwenden Ihre 'GetURL'-Funktion. Können Sie erläutern, wie Sie die Funktion GetURL verwenden? – Mrig

+0

Wenn Sie Excel 2016 verwenden, überprüfen Sie die Funktion FORMULATEXT. – jkpieterse

+0

Mrig, danke, ich verwende Alt + f11, um VBA aufzurufen. Dann fügen Sie> Modul ein. Kopieren Sie die Funktion und fügen Sie sie in das Modul ein. Später verwendet die Excel-Tabelle = GetURL für die Funktion. Wenn ich die gleiche Methode für HyperLinkText verwende, was würde ich als benutzerdefinierte Funktion bezeichnen? @ jkpieterse danke, aber ich benutze Excel 2011. – yathrakaaran

Antwort

1

In Ihrem Excel-Blatt schreiben Sie =HyperLinkText(A1). Geben Sie den Zellbereich wie erforderlich an. Sie müssen den folgenden Code in Ihrem Modul hinzufügen. Diese

ist genau die gleiche Antwort von der link Sie in Ihrer Frage nach @RonRosenfeld

Option Explicit 
Function HyperLinkText(rg As Range) 
    Dim sFormula As String, S As String 
    Dim L As Long 
    Dim H As Hyperlink, HS As Hyperlinks 

sFormula = rg.Formula 
L = InStr(1, sFormula, "HYPERLINK(""", vbBinaryCompare) 

If L > 0 Then 
    S = Mid(sFormula, L + 11) 
    S = Left(S, InStr(S, """") - 1) 
Else 
    Set HS = rg.Worksheet.Hyperlinks 
    For Each H In HS 
     If H.Range = rg Then 
      S = H.Address 
     End If 
    Next H 
End If 

HyperLinkText = S 

End Function 
+0

Mrig! Vielen Dank! Du hast meinen Tag gerettet! Vielen Dank, dass Sie sich die Zeit genommen haben, meine Frage zu beantworten! Diese Lösung funktionierte wie ein Zauber! – yathrakaaran

+0

@yathrakaaran - Ich könnte froh sein, dass ich helfen könnte. – Mrig

Verwandte Themen