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

我遇到了一些前段时间为Excel 2007编写的代码的问题。我现在使用的是Excel 2013,它引发了438个运行时错误。

这是抛出错误的一行。

ActiveSheet.WebBrowser1.Visible = True 

我已经检查了devise模式,Web浏览器对象肯定存在于活动工作表中,被称为“WebBrowser1”。 我也检查过,MS Internet控制器已启用。 有MS改变了WebBrowser对象的工作方式?

我已经find了自己的机器的问题和解决方法,但真的很感谢意见,更好的方式来处理这个分发给其他用户。

问题是由于安全问题,为Web浏览器对象设置了KillBit。

解决方法(这可能会导致用户打开安全问题)是进入registry并将值从400更改为0.我的64位系统的地址是: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Common\COM Compatibility\{8856F961-340A-11D0-A96B-00C04FD705A2}但是如果您search“COM兼容性”,您应该find正确的位置。

closures并重新启动Excel后,Web浏览器出现并按预期运行。

比方说,ActiveSheet是Sheet1转到对象浏览器>检查Class sheet1 Sheet1下>查找Members of Sheet1 (“WebBrowser1”应该在那里作为一个属性)

现在在Classes下查找Class WebBrowser >寻找Members of WebBrowser (检查Visible属性是否存在,如果是(Sheet1.WebBrowser1.Visible = True)应该为你工作。

否则浏览该属性,并确定哪些其他财产可以用来隐藏(你可以猜测它的名字))

 '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中它不起作用。 和形状不是工作表默认属性。 我会继续找…