Спасибо за этот отличный ресурс, он очень помог мне, но у меня возникла проблема с использованием excel VBA для загрузки файлов excel с удаленного сервера. Я подозреваю, что это нечто очевидное, что мой код отсутствует.Скачать файл с
Проблема, с которой я столкнулась, заключается в том, что все загруженные файлы всегда имеют размер 15 КБ независимо от размера или содержимого исходного файла, и все они имеют тот же контент, который, как представляется, просто скопирован с веб-сайта хоста чем файл, который я пытаюсь загрузить. Я попытался использовать различные расширения файлов, включая CSV, но результаты те же.
Когда я открываю загруженный файл, Excel говорит, что формат файла и расширение не совпадают, а затем говорит, что из-за проблем во время загрузки файл «отсутствует файл C: \ remote \ css \ logon.css» и «Отсутствует файл C: \ remote \ javascript \ ramjsfx.menu.css», который для меня является греческим.
Sub DownloadFilefromWeb()
Const E_OUTOFMEMORY As Long = &H8007000E
Const E_DOWNLOAD_FAILURE As Long = &H800C0002
Dim InitialName As String
Dim Msg As String
Dim RegExp As Object
Dim RetVal As Long
Dim SaveName As String
Dim SavePath As String
Dim URL As String
URL = InputBox("Enter the download URL below.", "Download from Internet")
If URL = "" Then Exit Sub
Set RegExp = CreateObject("VBScript.RegExp")
RegExp.IgnoreCase = True
RegExp.Pattern = "^(.*\/)(.+)$"
InitialName = RegExp.Replace(URL, "$2")
Set RegExp = Nothing
If InitialName = "" Or InitialName = URL Then
MsgBox ("Error - Missing File Name")
Exit Sub
End If
SavePath = Application.GetSaveAsFilename(InitialName)
If SavePath = "" Then Exit Sub
'SavePath = "C:\Users\Rob's Laptop\Documents\Test\Test3.xls"
'URL = "https://remote.picosting.co.uk/Remote/fs/files.aspx?path=%5c%5cPISBS2011%5cfiles%5cRob% 20Shaw%27s%20test%20folder%5cTest1"
RetVal = URLDownloadToFile(0&, URL, SavePath, 0&, 0&)
Select Case RetVal
Case 0
Msg = "Download Successful"
Case E_OUTOFMEMORY
Msg = "Error - Out of Mmemory"
Case E_DOWNLOAD_FAILURE
Msg = "Error - Bad URL or Connection Interrupted"
Case Else
Msg = "Unknown Error - " & RetVal
End Select
MsgBox Msg
End Sub
Сердечные приветы
Роб
Я использую этот код VBScript хотя и не VBA. http://vbscriptautomation.net/73/download-files-using-vbscript/ – glh