Страницы: 1
RSS
Скачивание файла из интернета по ссылке макросом
 
День добрый, профессионалы.
Есть макрос генерирующий ссылку на скачивание файла (пример). Но я никак не могу дойти до того как скачивать этот файл в папку с файлом, в котором исполняется макрос, использовать и удалять. Пробовал реализовать через iexplorer - не получилось решить проблему диалога с "сохранить как". Подскажите, пожалуйста, как решить эту проблему? Спасибо.
 
Internet Explorer тут не нужен
попробуйте это:
http://excelvba.ru/code/DownloadFile

или поищите примеры использования функции URLDownloadToFile
Код для вашего случая:
Код
#If VBA7 Then        '  Office 2010-2013
    Declare PtrSafe Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" _
            (ByVal pCaller As LongPtr, ByVal szURL As String, ByVal szFileName As String, _
             ByVal dwReserved As LongPtr, ByVal lpfnCB As LongPtr) As LongPtr
#Else        '  Office 2003-2007
    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
#End If

Function DownloadFile_FromURL(ByVal URL$, ByVal LocalPath$, Optional ByVal DisableCache As Boolean = False) As Boolean
    On Error Resume Next
    Kill LocalPath$
    DoEvents
    If DisableCache Then Randomize: URL$ = URL$ & IIf(InStr(1, URL, "?") > 0, "&", "?") & "rnd=" & Left(Rnd(Now) * 1E+15, 10)
    DownloadFile_FromURL = URLDownloadToFile(0, URL$, LocalPath$, 0, 0) = 0
    DoEvents
End Function

Sub test()
    URL = "http://www.moex.com/iss/history/engines/stock/markets/shares/boards/TQBR/securities/LSNG.csv?from=2016-11-01&till=2016-12-01&lang=RU"
    Filename = "c:\test.csv"
    If DownloadFile_FromURL(URL, Filename) Then
        MsgBox "файл скачан:" & vbNewLine & Filename
    Else
        MsgBox "не получилось скачать файл"
    End If
End Sub
 
Игорь, Спасибо большое!
Подскажите, пожалуйста, что делает эта строчка:
Код
If DisableCache Then Randomize: URL$ = URL$ & IIf(InStr(1, URL, "?") > 0, "&", "?") & "rnd=" & Left(Rnd(Now) * 1E+15, 10)
Страницы: 1
Читают тему
Наверх