我提前道歉,因为我在填写这个问题时遇到了麻烦。
我们需要在Excel中有一个对话框,可以根据我们服务器的数据动态更改。
如何让Excel显示从HTML生成的表单(应该直接从Web服务器检索),然后将提交该表单的结果转换为我可以操作的VBA字符串?
(假设用户与互联网保持稳定可靠的连接,并且我们的服务器永远不会停机。)
有没有办法让Excel打开一个浏览器窗口,我可以截取这样的行为?或者我将不得不使用Ajax并自己解析HTML以从VBA创建表单?
我希望这个问题有道理! 谢谢!
答案 0 :(得分:2)
使用Internet Explorer ActiveX控件。以下是Excel VBA的完整教程:
答案 1 :(得分:1)
如果你有Excel 2010,你可以尝试Data->From Web
这个很酷的功能。我相信你可以将它与VBA集成
答案 2 :(得分:0)
您可以使用XMLHttp实例从Web服务器请求和接收信息。如果您访问的“webservice”在您的控制之下,那么将数据作为csv /纯文本返回会更好,如果您需要更结构化的数据集,则返回XML。
如果您需要在请求中传递一些信息,那么您可以使用GET或POST(取决于您需要发送多少)。这将模仿发布常规网页表单。
这是一个简单的函数,它将从传递给它的URL中获取信息:
Private Function WebResponse(sURL As String) As String
Dim XmlHttpRequest As Object
Set XmlHttpRequest = CreateObject("MSXML2.XMLHTTP")
XmlHttpRequest.Open "GET", sURL, False
XmlHttpRequest.send
WebResponse = XmlHttpRequest.responseText
End Function
您的网址可以采用以下形式:http://yourserver/page.php?id=22
其中“22”是您传递给请求的信息,以确定服务器要回复的信息。