[英]VBA to download an image from an Internet source
我想從網絡下載圖像並嘗試使用 URLDownloadToFile API,如下所示。
#If VBA7 Then
Private Declare 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 Long
#Else
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
#End If
Private Sub TestDownload()
Dim Source As String, Target As String
Dim Ret As Long
Source = "//cdnparap40.paragonrels.com/ParagonImages/Property/P4/JONESBORO/10077581/0/120/90/" & _
"f645b5257c6ae2f13147ec57c315f9f4/1/acd2b86d15f1087ed3462f2ba4ebb733/10077581.JPG"
Target = "H:\Temp\FileName.jpg"
Ret = URLDownloadToFile(0, Source, Ffn, 0, 0)
End Sub
目標目錄存在,但代碼未提供結果 (Ret = 0)。 但是,我不知道原因,因為代碼沒有錯誤。
互聯網地址是正確的。 我可以查看圖片並向公眾開放。 但是,我不確定是否允許下載。
我不知道是否需要對 Urlmon.dll 的特定引用。 我試圖加載它,但 VBA (Excel 2010) 拒絕了,“無法添加對指定庫的引用”。
VBA7 = True 在我的機器上。 我將 3 Long 聲明更改為 LongPtr 但我不知道這是必需的(對於所有三個)。 在我用 Long 聲明嘗試相同的代碼之前,沒有更好的結果。
最后,同樣重要的是,我不確定 URLDownloadToFileA 是否是用於此特定 URL 結構的 API。 也許有一個更簡單的解決方案。
歡迎任何指導,解決方案會很棒。 謝謝你。
如果在瀏覽器中輸入不帶協議的image-url,瀏覽器會選擇默認協議(一般是http)。 但這似乎不是URLDownloadToFile
函數的情況。
添加一個領先的http:
到 url 對我有用
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.