Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA(Excel 2013)中寻址web浏览器ActiveX控件失败_Vba_Excel_Browser_Excel 2013 - Fatal编程技术网

在VBA(Excel 2013)中寻址web浏览器ActiveX控件失败

在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的成员下

我之前为Excel2007编写的一段代码有问题。我现在使用的是Excel 2013,它抛出了一个438运行时错误

下面是抛出错误的一行

 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不作为属性存在。虽然此代码可能会回答此问题,但提供有关如何和/或为什么解决此问题的其他上下文将提高答案的长期价值。