【问题标题】:Using VBA in Outlook to Save File on Web/URL/Hyperlink在 Outlook 中使用 VBA 在 Web/URL/超链接上保存文件
【发布时间】:2011-09-15 02:32:17
【问题描述】:

因此,我每周都会收到一封电子邮件,其格式始终相同,并且正文中包含指向 PDF 文件的超链接。我知道如何解析电子邮件以检索 URL,但是是否可以让 VBA 代码从超链接/url 下载该文件并将其保存在文件夹中?

【问题讨论】:

    标签: url vba hyperlink outlook


    【解决方案1】:
    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 DownloadFile(sURL, sSaveAs)
        Dim rv As Long
    
        rv = URLDownloadToFile(0, sURL, sSaveAs, 0, 0)
        If rv = 0 Then
            MsgBox "Download has been succeed!"
        Else
            MsgBox "Error"
        End If
    End Sub
    

    【讨论】:

    • 这很有帮助,但是,我必须添加对 Microsoft WinHTTP 服务的引用(在 VBA 编辑器中:工具/参考/Microsoft WinHTTP 服务,版本 5.1)。不知道这对其他人是否显而易见。
    【解决方案2】:

    我最终使用了在另一个板上找到的不同方法,尽管我知道我能找到的大多数示例都使用了 UrlDownloadtoFile。代码如下:

    Dim myURL As String
    myURL = "http://www.somesite.com/file.csv"
    
    Dim WinHttpReq As Object
    Set WinHttpReq = CreateObject("Microsoft.XMLHTTP")
    WinHttpReq.Open "GET", myURL, False
    WinHttpReq.Send
    
    myURL = WinHttpReq.ResponseBody
    If WinHttpReq.Status = 200 Then
        Set oStream = CreateObject("ADODB.Stream")
        oStream.Open
        oStream.Type = 1
        oStream.Write WinHttpReq.ResponseBody
        oStream.SaveToFile ("C:\file.csv")
        oStream.Close
    End If
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2016-06-23
      相关资源
      最近更新 更多