在VBA(Excel 2013)中寻址web浏览器ActiveX控件失败
我之前为Excel2007编写的一段代码有问题。我现在使用的是Excel 2013,它抛出了一个438运行时错误 下面是抛出错误的一行在VBA(Excel 2013)中寻址web浏览器ActiveX控件失败,vba,excel,browser,excel-2013,Vba,Excel,Browser,Excel 2013,我之前为Excel2007编写的一段代码有问题。我现在使用的是Excel 2013,它抛出了一个438运行时错误 下面是抛出错误的一行 ActiveSheet.WebBrowser1.Visible = True 我在设计模式中检查了web浏览器对象是否确实存在于活动工作表中,并将其称为“WebBrowser1”。我还检查了MS Internet控件是否已启用。MS是否改变了WebBrowser对象的工作方式?假设ActiveSheet是Sheet1 转到对象浏览器>检查类>查找表1的成员下
ActiveSheet.WebBrowser1.Visible = True
我在设计模式中检查了web浏览器对象是否确实存在于活动工作表中,并将其称为“WebBrowser1”。我还检查了MS Internet控件是否已启用。MS是否改变了WebBrowser对象的工作方式?假设ActiveSheet是
Sheet1
转到对象浏览器>检查类>查找表1的成员下的类表1
(“WebBrowser1”应作为属性存在)
现在在“类别>查找网络浏览器成员”下搜索类别网络浏览器
(检查是否存在Visible属性。如果是(Sheet1.WebBrowser1.Visible=True)
应该适用于您
否则,请浏览该属性并确定可用于隐藏的其他属性
(你可能会猜到它的名字)我已经找到了我自己的机器的问题和解决方法,但我非常感谢您提供更好的方法来处理这个问题,以便分发给其他用户
问题是,由于安全问题,web浏览器对象设置了KillBit
解决方法(可能会让用户面临安全问题)是进入注册表并将值从400更改为0。我的64位系统的地址是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Common\COM Compatibility\{8856F961-340A-11D0-A96B-00C04FD705A2}
但如果搜索“COM Compatibility”,您应该找到正确的位置
关闭并重新启动Excel后,web浏览器出现并按预期运行
'this works in Excel 2013
Dim wb As WebBrowser: Set wb = Sheets("sheet1").Shapes("WebBrowser1").DrawingObject.Object
wb.Navigate url
我猜测,因为我找不到任何文档来证实这一点,在Excel2007中,工作表对象的默认属性必须是工作表上的形状或对象集合。我也注意到ws.WebBrowser1在web工作表上引用WebBrowser对象实例的方式,但在Excel2013中它不起作用。形状不是工作表的默认属性。我将继续查找…WebBrowser1不作为属性存在。虽然此代码可能会回答此问题,但提供有关如何和/或为什么解决此问题的其他上下文将提高答案的长期价值。