Dan*_*der 3 vba internet-explorer-8 excel-2010
我正在从Excel VBA自动化IE8(Excel 2010,Windows 7)
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate2 URL
Run Code Online (Sandbox Code Playgroud)
如果URL是IE保护模式所在区域中的网站,则一切正常.
如果URL是IE保护模式关闭的区域中的网站,则脚本将失败(IE将自动显示,IE对象在VBA中丢失 - 自动化错误).
有没有办法在保护模式关闭的区域中启用navigate2?
Eri*_*Law 10
您要做的是创建一个以中等完整性运行的IE实例,然后导航它.通常,您可以使用CoCreateInstance(CLSID_InternetExplorerMedium)来实现.目前,没有ProgID指向此CLSID,但是,您可以轻松创建一个:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium]
[HKEY_CLASSES_ROOT\InternetExplorer.ApplicationMedium\CLSID]
@="{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}"
Run Code Online (Sandbox Code Playgroud)
然后,您可以这样调用此对象:
CreateObject("InternetExplorer.ApplicationMedium")
Run Code Online (Sandbox Code Playgroud)
我在这里解释得更充分:http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium的.aspx
通过CLSID获取InternetExplorer.ApplicationMedium:
Set IE = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
Run Code Online (Sandbox Code Playgroud)