VBA在不打开新标签的情况下从网址保存图片

时间:2014-08-08 13:08:37

标签: image vba download

我有一个链接到图片的网址列表。每行有一个网址。如果您点击该网址,则会在Google Chrome中打开一个新标签并下载该标签。这很好,因为我想下载图片。但是经过一些(50或者一些)后,有很多标签,整个事情只是冻结和关闭。

所以基本上有一种方法可以在没有在谷歌中打开新标签的情况下下载图片。

这是我正在使用的

Sub OpenHyper()

numRow = 2

Do While ActiveSheet.Range("D" & numRow).Hyperlinks.Count > 0
    ActiveSheet.Range("D" & numRow).Hyperlinks(1).Follow
    numRow = numRow + 1
Loop

End Sub

这是我正在打开的链接类型

http://depot.ville.montreal.qc.ca/vues-aeriennes-obliques-1960-1969/VM94-B001-001.tif http://depot.ville.montreal.qc.ca/vues-aeriennes-obliques-1960-1969/VM94-B001-002.tif

感谢

1 个答案:

答案 0 :(得分:0)

行。我已经听说过这个,但还没试过用它。您可以在Chrome中使用API​​。下载并安装它。

https://code.google.com/p/selenium-vba/

VBProject中对SeleniumWrapper类型库的启用引用。

注意您可能需要更改Chrome浏览器中的某些设置,以防止它打开新选项卡"。在我的浏览器中,当我导航到那些直接下载的URL而不打开新选项卡时,这些文件只会出现在浏览器底部的下载列表中。

完成上述操作后,此代码应该可以正常工作(但不适用于自动下载文件的其他网址)。

Sub DownloadFiles()
'Files will be downloaded directly to your "Downloads" folder or whatever is
' your default folder for downloading content from the internet.
Dim numRow As Long
Dim url As String
Dim chrome As SeleniumWrapper.WebDriver

numRow = 2

Set chrome = New SeleniumWrapper.WebDriver

chrome.Start "Chrome", "http://google.com", False

Do While ActiveSheet.Range("D" & numRow).Hyperlinks.Count > 0
    url = ActiveSheet.Range("D" & numRow).Hyperlinks(1).Address
    chrome.Open url
    numRow = numRow + 1
Loop

chrome.Close
Set chrome = Nothing
End Sub