【问题标题】:Save Prompt While download from IE using vba使用 vba 从 IE 下载时保存提示
【发布时间】:2019-02-12 06:50:18
【问题描述】:

我将从安全网站下载文件。 每次保存时都会询问。

有没有办法从附件网页下载文件

建议我在不提示的情况下将文件下载到特定路径

文件链接是“https://www.connect2nse.com/ENIT/imsscsv_download.jsp?filename=07730_Dormant_Account_08022019.csv&filepath=/dmsapp/mnt/appln/DMSWeblogic/ENIT_FILES/COMMUNICATION_LOG/SENDER/INVESTIGATION_ALERTS/07730_Dormant_Account_08022019.csv

<a href="/ENIT/imsscsv_download.jsp?filename=07730_Dormant_Account_08022019.csv&amp;filepath=/dmsapp/mnt/appln/DMSWeblogic/ENIT_FILES/COMMUNICATION_LOG/SENDER/INVESTIGATION_ALERTS/07730_Dormant_Account_08022019.csv">
                     07730_Dormant_Account_08022019.csv</a>

我也无法从上述链接下载文件

但是使用右键,系统直接允许文件保存

是否有任何其他选项使用 vba 来保存文件而不提示单击是 href 链接

建议

【问题讨论】:

    标签: javascript html excel vba


    【解决方案1】:

    下载文件时,最好使用XmlHttpRequest,而不是机器人网络抓取。 使用以下宏:

    Sub DownloadFile(ByVal fileLink As String, ByVal username, ByVal password)
    
        Dim XmlHttpReq As Object
        Set XmlHttpReq = CreateObject("Microsoft.XMLHTTP")
        XmlHttpReq.Open "GET", fileLink, False, username, password
        XmlHttpReq.send '<-- send the GET request of your resource file to the website
    
        fileLink = XmlHttpReq.responseBody 'save response body
        If XmlHttpReq.Status = 200 Then 'if GET request was OK
            Set adodbStream = CreateObject("ADODB.Stream") 'Create a Stream
            adodbStream.Open 'open it
            adodbStream.Type = 1 
            adodbStream.Write XmlHttpReq.responseBody 'write response in it
            adodbStream.SaveToFile "C:\file.csv", 2 ' 1 = doesn't overwrite, 2 = overwrites 'save it
            adodbStream.Close 'close stream
        End If
    
    End Sub
    

    ...您应该能够像这样执行保存:

    Sub YourMainMacro()
        '... your code
        DownloadFile yourAHRef, yourUsername, yourPassword
        '...continue your code
    End Sub
    

    【讨论】:

    • @Ashish 在fileLink = XmlHttpReq.responseBody 行上设置断点,并在XmlHttpReq 上添加监视。查看对象是否设置正确。
    猜你喜欢
    • 2013-05-18
    • 1970-01-01
    • 2012-02-18
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多