2016-06-14 262 views
1

的新实例,我在Excel中创建从A2到A22, 在此范围内每个单元一个名单我有一个超链接,我需要循环中的所有单元格,然后打开她的链接。 简单?!?!?或多或少,对我来说是很容易写的代码比这胎面:VBA打开超链接到浏览器

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

但我的工作代码错误的,因为所有的播放记录,我需要浏览器的一个实例,在相同的情况下并不是所有的选项卡。 参数NewWindow添加一个标签,如果我想打开浏览器的一个新实例怎么可以呢?

回答

-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 
+0

蒂姆的答案非常好,我标记它。 对于一个错误我投下了答案,我怎么能改变为有用的? – Fabrizio

+0

这段代码对我来说没有任何错误。你得到的错误是什么?什么是没有用的?你的问题是如何在自己的IE实例中打开每个链接。这确实如此。如果我的回答没有用,请重新定义您的问题。 – Tim

0

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

假设你使用的是Firefox,我遇到了同样的问题,直到我“在新标签,而不是打开新窗口”选项关闭了。之后,每个超链接都在一个单独的窗口中打开。

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

+1

这可能会工作,但它需要大家谁使用的工作簿改变这个设置。另外,更改此设置将影响与浏览器交互的每个应用程序的默认行为。 – Tim

+0

是的,你说得对,这不是一个很好的方法。你的方法好得多!没有想到完全创建一个新的IE窗口。 – Yarnspinner

相关问题