如何在Excel中使用chrome选择打开超链接

时间:2016-06-14 17:47:34

标签: excel vba excel-vba google-chrome hyperlink

我知道你可以做到

Sub Chrome()

Dim chromePath As String
chromePath = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
Shell (chromePath & " -url https://www.google.com")
Shell (chromePath & " -url path")
Shell (chromePath & " -url path")
Shell (chromePath & " -url path")
Shell (chromePath & " -url path")

End Sub

但如果我事先不知道超链接或URL'我不能在代码中真正地写它们,我确实有超链接的单元格,我想要完成能够选择X的数量单元格并打开Chrome中不同标签中的超链接。

我尝试了一些愚蠢的行为

Sub Open_HyperLinks()

Dim chromePath As String
chromePath = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
    Dim hl As Hyperlink
    On Error Resume Next
    For Each hl In Selection.Hyperlinks
        Shell (chromePath & " -url hl")
    Next hl
End Sub

当然没有用......

2 个答案:

答案 0 :(得分:1)

您应该使用Hyperlinks集合中每个超链接 .Address 属性。

Sub Open_HyperLinks()
    Dim chromePath As String, hl As Hyperlink

    chromePath = Environ("PROGRAMFILES(X86)") & "\Google\Chrome\Application\chrome.exe"
    'On Error Resume Next
    For Each hl In Selection.Hyperlinks
        Shell chromePath & " -url " & hl.Address
    Next hl
End Sub

我从头开始解决了你的%PROGRAMFILES(X86)%环境变量,但是硬编码的驱动器和路径也可以正常工作。

答案 1 :(得分:0)

Shell()方法将所有参数作为字符串传递给命令行。确保“-url hl”中的hl对象超出引用范围。否则,Shell()将“hl”作为超链接而不是“https://www.google.com”传递。

出于同样的原因,摆脱chromePath周围的额外报价。

试试这个:

Sub Open_HyperLinks()

    Dim chromePath As String
    chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
        Dim hl As Hyperlink
        On Error Resume Next
        For Each hl In Selection.Hyperlinks
            Shell (chromePath & " -url -newtab " & hl)
        Next hl
End Sub

注意:我没有为chrome可执行文件测试这些标志。