【发布时间】:2019-07-04 19:03:10
【问题描述】:
我在 VBA 上编写的代码有问题。我基本上是使用 vba 打开一个网站,输入信息,然后单击一个下载按钮,它会下载一个 csv,然后我可以将其复制并放入我的 excel 文件中。在单击下载按钮之前,我确实设法完成了所有工作。当我这样做时,IE11 会出现一个对话窗口,询问我是要保存还是打开文件。我不知道如何解决这个问题以及如何单击打开或保存。我已经尝试了 Controlling IE11 "Do you want to Open/Save" dialogue window buttons in VBA 中针对同一问题的解决方案中提到的所有内容,但即使我使用此解决方案,代码也会运行,但什么也没做。
我曾尝试使用 UIAutomation,但没有成功。我使用了Controlling IE11 "Do you want to Open/Save" dialogue window buttons in VBA 中提供的解决方案。我也尝试过使用 Sendkeys,但我不完全确定如何将焦点设置在 Internet Explorer 上,以便 sendkeys 做它们应该做的事情。
代码其实很简单
Sub GetHTMLDocument()
Dim ie As New SHDocVw.InternetExplorer
Dim HTMLDoc As HTMLDocument
Dim HTMLInput As MSHTML.IHTMLElement
Dim HTMLButtons As MSHTML.IHTMLElementCollection
Dim HTMLButton As MSHTML.IHTMLElement
ie.Visible = True
ie.Navigate "this is where i put the website"
Do While ie.ReadyState <> READYSTATE_COMPLETE
Loop
Set HTMLDoc = ie.Document
Set HTMLInput = HTMLDoc.getElementById("Search")
HTMLInput.Value = "Hello"
Set HTMLInput = HTMLDoc.getElementById("downloadCSV")
HTMLInput.Click
End Sub
不幸的是,我无法提供网站,也无法使用公共网站,之后我收到消息是在 Internet Explorer 上打开还是保存它
【问题讨论】:
-
公开网址?
-
要使用 url,你需要一个 vpn 访问权限,所以我无法发送 url,我知道这会使事情复杂化
-
你能找到一个不同的网站,你的代码的基本结构会重现问题吗?此外,包括您当前的最佳编码尝试将有助于避免任何反对意见,因为为什么我的代码工作问题通常不需要包含代码。很明显你已经做了研究。
-
我已经编辑了帖子
-
有人可能应该关闭它并标记为stackoverflow.com/questions/11652890/…的重复项
标签: vba