2010-01-20 76 views
0

我知道如何从VBA应用程序中打开Internet Explorer。但是,如何从运行的资源管理器获取“返回”值到VBA应用程序。例如,让我们假设我尝试访问 http://page_not_there 并返回错误400我如何在我的VBA应用程序中获取此值并相应地执行操作。任何提示或链接或编程示例将非常受欢迎从嵌入式Internet Explorer获取返回值

可以进行精细编辑。所以顺序是: 信息发送,我找回一个HTML字符串,可以在IE中使用,以签署文件。当然,对于那个人来说,在IE中点击一下,但最终我会得到一种“反馈”,如果签名成功了,我需要这个“反馈”来知道我能否继续。

我已经关闭了我的窗户盒子,所以请谨慎对待他。我以这种方式启动IE

set ie = CreateObject("InternetExplorer.Application") 
ie.navigate2 "to_where_I_want" 

就是这样。

然后我得到其中一个Java小程序运行签署choosen 以上(“to_where_I_want”)我有几个按钮那里,打在签署后我必须输入个人识别码,然后我感兴趣的URL页面在IE浏览器的输出中。

据我了解您发表我更好地创建一个表单与W​​eb控制,并使用这个浏览和签署

问候 弗里德里希

+1

我认为这将取决于你是如何从VBA加载的Internet Explorer。如果你包含加载IE的代码,这将有助于获得更快的响应。 – THEn 2010-01-20 17:29:03

回答

1

这里有一个方法的一些注意事项,以获得一个页面的状态。

Dim http As Object 
    Dim xmlhttp As Object 

     Set http = CreateObject("MSXML2.ServerXMLHTTP.4.0") 
     Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 

     On Error Resume Next 

     xmlhttp.Open "GET", url, False 
     ''This alternative can return status 405 in some cases 
     ''xmlhttp.Open "HEAD", url, False 
     xmlhttp.Send "" 

     ''You can get the status of the page 
     Status = xmlhttp.Status 

     If Err.Number <> 0 Or Status <> 200 Then 
      IsLink = False 
     Else 
      IsLink = True 
     End If 

     Set xmlhttp = Nothing 

编辑:一些注意事项重新评论

假设有一个叫WBForm了一个名为WB控制,这是微软的Web浏览器控件形式:

''Navigate to a non-existent page 
Forms!WBForm!WB.Navigate "http://lessthandot.com/somepage.htm" 
''Title of the page 
MsgBox Forms!WBForm!WB.Document.Title 

标题将在上面的情况下包含“HTTP 404 Not Found”。该文件也可以使用各种元素读取。

The document object model Scripting with Elements and Collections

+0

这不是从嵌入式IE浏览器控件获取HTTP状态代码,而是创建XML Http Request对象并从中获取状态代码。完全不同的东西。 – 2010-01-20 17:43:13

+0

尽管这不是所要求的,但它适用于VBA。 – Fionnuala 2010-01-21 09:46:57

+0

@ Remou的回答实际上更好,因为您不必在浏览器控件中显示结果以使用它。在我看来,原来的问题是有缺陷的,因为它使浏览器控制权直接与结果一起工作。 – 2010-01-21 20:14:57