【问题标题】:VBA open Hyperlink into a new instance of browserVBA打开超链接到浏览器的新实例
【发布时间】:2016-06-14 13:08:36
【问题描述】:

我在excel中创建了一个从A2到A22的列表, 在这个范围的每个单元格中,我都有一个超链接,我需要循环所有单元格并打开她的链接。 简单的?!?!?或多或少,对我来说是比这一步更容易编写代码:

Sub PlayAllVideo()
For Each cl In Range("A2:A22")
    cl.Select
    Selection.Hyperlinks(1).Follow NewWindow:=True, AddHistory:=True
Next cl
End Sub

但我的代码工作错误,为了播放所有记录,我需要一个浏览器实例,而不是同一实例中的所有选项卡。 参数NewWindow添加一个标签,如果我想打开一个新的浏览器实例怎么办?

【问题讨论】:

    标签: vba excel hyperlink


    【解决方案1】:

    要绕过重复使用选项卡或创建新选项卡的浏览器,只需像这样每次都创建自己的 IE 实例:

    Sub PlayAllVideo()
        Dim IE As Object
    
        For Each cl In Range("A2:A22")
            Set IE = CreateObject("InternetExplorer.Application")
            'It is generally advisable to avoid using Select and ActiveCell
            'cl.Select
            IE.Visible = True
            IE.Navigate cl.Hyperlinks.item(1).Address
        Next cl
        Set IE = Nothing
    End Sub
    

    【讨论】:

    • 蒂姆的回答很好,我标记一下。对于一个错误,我否决了答案,我怎样才能改成有用的??
    • 这段代码对我来说没有任何错误。你得到什么错误?还有什么没用??您的问题是如何在其自己的 IE 实例中打开每个链接。这正是这样做的。如果我的回答没有用,请重新定义您的问题。
    【解决方案2】:

    问题可能出在浏览器端。我尝试使用 Firefox 和 Internet Explorer,更改浏览器设置后问题得到解决。但是,该解决方案并不完美,因为无论 VBA 中的 NewWindow 设置如何,它总是打开新窗口。

    假设您使用的是 Firefox,在我关闭“在新选项卡中打开新窗口”选项之前,我遇到了相同的行为。之后,每个超链接都在单独的窗口中打开。

    对于 Internet Explorer,在 Internet 选项 > 选项卡设置 > 从其他程序打开链接已更改为新窗口而不是新选项卡。

    【讨论】:

    • 这可能会起作用,但它需要使用工作簿的每个人都更改此设置。此外,更改此设置将影响与浏览器交互的每个应用程序的默认行为。
    • 是的,你是对的,这不是一个很好的方法。你的方法好多了!完全没有考虑创建一个新的 IE 窗口。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2021-09-23
    • 1970-01-01
    • 2012-12-15
    • 2012-01-29
    • 2017-11-22
    • 2017-06-25
    • 1970-01-01
    相关资源
    最近更新 更多