VBA打开超链接到浏览器
的新实例,我在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
添加一个标签,如果我想打开浏览器的一个新实例怎么可以呢?
要解决这个问题重复使用的标签浏览器,或创建新的标签,简单地创建自己的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
的问题可能是在浏览器端。我尝试使用Firefox和Internet Explorer,并且更改浏览器设置后问题得到解决。但是,该解决方案并不完美,因为无论VBA中的NewWindow设置如何,它都会打开新窗口。
假设你使用的是Firefox,我遇到了同样的问题,直到我“在新标签,而不是打开新窗口”选项关闭了。之后,每个超链接都在一个单独的窗口中打开。
对于Internet Explorer,在Internet选项>选项卡设置>打开链接从其他程序改为新窗口,而不是一个新标签。
这可能会工作,但它需要大家谁使用的工作簿改变这个设置。另外,更改此设置将影响与浏览器交互的每个应用程序的默认行为。 – Tim
是的,你说得对,这不是一个很好的方法。你的方法好得多!没有想到完全创建一个新的IE窗口。 – Yarnspinner
蒂姆的答案非常好,我标记它。 对于一个错误我投下了答案,我怎么能改变为有用的? – Fabrizio
这段代码对我来说没有任何错误。你得到的错误是什么?什么是没有用的?你的问题是如何在自己的IE实例中打开每个链接。这确实如此。如果我的回答没有用,请重新定义您的问题。 – Tim