首页 文章

在VBA中打开超链接

提问于
浏览
1

我有一个excel文件 . 在第一个工作表中有一些超链接行(相对文件路径=文件位于excel文件旁边) .

在VBA中,我将获取包含超链接的单元格 . 如何在VBA中打开后跟超链接的文件?其实我想打开超链接(实际打开文件)

3 回答

  • 2

    看看 Hyperlink 对象参考:

    https://msdn.microsoft.com/en-us/library/office/ff835563.aspx

    您应该能够使用 .Follow 方法打开文件,或者如果不起作用,您可以始终获取 .Address 属性并将其传递给 Workbooks.Open 方法 .

    同时将Excel Object Model Reference加入书签以备将来使用:)

    我不认为这适用于公式超链接,所以如果那是你的情况,那么,做:

    Sub h()
        Dim cl As Range
        Dim h As String
        Set cl = Range("E13") 'Modify to the cell containing your =HYPERLINK formula
        h = Replace(cl.Formula, "=HYPERLINK(", "")
        h = Replace(h, ")", "")
        h = Replace(h, Chr(34), "")
        h = Split(h, ",")(0)
    
        Dim wb As Workbook
        Set wb = Workbooks.Open(h)
    End Sub
    
  • 6

    如果工作表中的超链接在 =hyperlink() 公式中,我们:

    • grab 公式

    • 解析它以获得 url

    • 关注超链接:

    这是代码:

    Sub ClickByVba()
        ary = Split(ActiveCell.Formula, Chr(34))
        ActiveWorkbook.FollowHyperlink Address:=ary(1)
    End Sub
    

    enter image description here

    这适用于Web链接和文件链接 .
    如果链接指向文件,则文件将被打开(如果尚未打开)并且将进行跳转 .

  • 0

    正如我对Gary的回答所评论的那样,如果您的网站需要登录,ActiveWorkbook.FollowHyperlink方法可以正常工作,但是 it will ask for your credentials every time you open the link .

    如果您想打开一个网站并保存您的凭据,您可以使用我写的其他功能:

    Sub OpenHyperlink(ByVal link As String)
       'Escape chars that cmd.exe uses
        link = Replace(link, "^", "^^")
        link = Replace(link, "|", "^|")
        link = Replace(link, "&", "^&")
        'Open default web browser
        Shell "CMD.EXE /C START " & link, vbHide
    End Sub
    

相关问题