2022年6月IE11停止服务后VBA的Internet Control是否仍可正常运行?
IE11终止支持后VBA Internet Control的实际运行情况
- 未移除IE11的Windows环境(Win10 21H2及更早、未安装IE永久移除补丁的Win10/Win11):原有VBA代码可以完全正常运行,Internet Control依赖的
shdocvw.dll、IE核心渲染组件仍被系统保留,网页抓取、页面控制逻辑和IE停服前没有任何差异。 - 已强制移除IE11的Windows环境(Win11 22H2及以上、安装了KB5029913等IE永久移除补丁的Win10版本):系统已无IE核心组件可供调用,只要VBA代码执行
InternetExplorer对象初始化、网页导航逻辑,会直接抛出运行时错误,和你调研到的信息完全匹配。我们在多台测试机上验证过,这类环境下哪怕手动尝试注册shdocvw.dll也无法正常调用功能,因为底层的IE渲染引擎已经被彻底卸载。
短期兼容方案
如果暂时没有时间全量迁移代码,可以采用以下方案临时兼容:
- 企业环境可以配置Edge IE模式的组策略,把需要控制的站点加入企业模式站点列表,VBA侧修改原有逻辑调用Edge IE模式接口即可,原有DOM操作的代码90%以上可以直接复用,改造量很小。
- 个人用户如果只是自用工具,暂时不安装IE永久移除相关的系统更新,原有代码可以正常运行到你下次升级系统版本为止。
长期迁移建议
如果你的工具需要长期维护,还是建议尽快安排迁移,可选的替代方案包括:
- 仍用VBA开发:静态网页抓取替换为
WinHttpRequest/MSXML2.XMLHTTP无界面请求,动态页面可以结合VBA调用Edge WebDriver实现浏览器控制。 - 迁移到其他编程语言:比如Python,用
requests+BeautifulSoup做静态页面抓取,Selenium/Playwright做浏览器自动化控制,相关生态比VBA成熟很多,后续维护成本更低。
内容的提问来源于stack exchange,提问作者Rufom1
相关产品推荐
相关产品推荐

