Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to download all links in column A in a folder? [duplicate]

Possible Duplicate:
GET pictures from a url and then rename the picture

I have over 30+ files links I need to download. Is there a way to do this excel?

I want to do in excel because to get those 30+ links I have to do some clean ups which I do in excel.

I need to do this every day. if there is way to do in excel would be awesome.

For example, if A2 is image then download this image into folder

https://www.google.com/images/srpr/logo3w.png

if there is way to rename logo3w.png to whatever is in B2 that would be even more awesome so I won't have to rename file.

Script below, I found online, It works but I need help with rename it.
In column A2:down I have all links
In column B2:down I have filename with extension

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
like image 717
Mowgli Avatar asked Jan 17 '26 17:01

Mowgli


1 Answers

I'm pretty sure you'll be able to slightly modify the following code to satisfy your needs:

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

Good luck!

like image 148
Peter L. Avatar answered Jan 20 '26 08:01

Peter L.



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!