簡體   English   中英

VBA 從 Internet 源下載圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM