使用vba保存由Javascript IE创建的文件

时间:2017-07-26 12:20:51

标签: javascript vba internet-explorer

我有一个例程,它登录并从您登录的页面调用脚本,但是此报告可以从Internet保存,我需要它自动保存而无需用户干预。

Sub ConnectWeb()
Dim ie As InternetExplorer
Dim C
Dim ULogin As Boolean, ieForm
Dim MyPass As String, MyLogin As String
Dim Linha As Integer
Dim PN As String
MyLogin = Application.InputBox("Por Favor entre com o Login", "Empresa", Default:="User", Type:=2)
MyPass = Application.InputBox("Por favor entre com a senha", "Empresa", Default:="Password", Type:=2)

Set ie = New InternetExplorer
ie.Visible = True
ie.Navigate "http://url"
Do Until ie.ReadyState = READYSTATE_COMPLETE
Loop
ie.Document.all("cuser").innerText = MyLogin
ie.Document.all("cpass").innerText = MyPass
ie.Document.getElementById("cent").Value = "BR"

ie.Document.forms(0).submit
Do While ie.Busy
   DoEvents
Loop
    PN = "D515005-5304"
'JavaScript to create file
    ie.Document.parentWindow.execScript ("printPL('" & PN &         "','N%2FC','no')")


End Sub

在Java脚本调用出现后,显示生成文件的消息和Internet Explorer保存选项,此时我需要自动保存文件,最好是在特定路径中保存。

此后,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我选择使用chrome并发现javascript发送信息byurl,所以我使用了以下逻辑

Sub test()
Dim chromePath, PN As String
Dim Linha As Integer
chromePath = """C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"""
Linha = 2
Cells(Linha, "A").Select
Do While ActiveCell <> ""
    PN = Cells(Linha, "A").Value
    strURL = "http://cdroyal4.cdzodiac.com/cgi-bin/wspd_cgi.sh/WService=wslive/wpt/function.r?funct=print.pl&drawing-no=" & PN & "&prelim=no&rev=N%2FC&filename=" & PN
    Shell (chromePath & strURL)
    Linha = Linha + 1
    Cells(Linha, "A").Select
Loop

MsgBox "Complete", vbInformation, "Empresa"
End Sub

使用Chrome,下载会自动完成,从而产生预期效果。 感谢所有评论过的人