2

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

这是引发错误的行。

 ActiveSheet.WebBrowser1.Visible = True

我在设计模式中检查了 Web 浏览器对象肯定存在于活动工作表中,并且被称为“WebBrowser1”。我还检查了 MS Internet Controls 是否已启用。MS 是否改变了 WebBrowser 对象的工作方式?

4

3 回答 3

2

我已经为我自己的机器找到了问题和解决方法,但非常感谢有关更好地处理此问题以分发给其他用户的建议。

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

解决方法(可能让用户对安全问题持开放态度)是进入注册表并将值从 400 更改为 0。我的 64 位系统的地址是: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\15.0\Common\COM Compatibility\{8856F961-340A-11D0-A96B-00C04FD705A2}但是如果您搜索“COM 兼容性”,您应该会找到正确的地方。

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

于 2013-06-11T16:01:48.460 回答
0

假设 ActiveSheet 是Sheet1 转到对象浏览器 >Class sheet1在类下检查 > 查找Members of Sheet1 (“WebBrowser1”应该作为属性存在)

现在Class WebBrowser在 Classes > Look for 下搜索Members of WebBrowser (检查 Visible 属性是否存在。如果是的话(Sheet1.WebBrowser1.Visible = True)应该适合你。

否则浏览该属性并确定可以使用哪些其他属性隐藏(您可能会通过名称猜到))

于 2013-06-11T12:03:58.070 回答
0
'this works in Excel 2013
Dim wb As WebBrowser: Set wb = Sheets("sheet1").Shapes("WebBrowser1").DrawingObject.Object
wb.Navigate url

我猜,因为我找不到任何文档来证实这一点,在 Excel2007 中,Worksheet 对象的默认属性必须是 Shapes 或工作表上的对象集合。我也注意到 ws.WebBrowser1 方法在网络上的工作表上引用 WebBrowser 对象实例,但在 Excel2013 中它不起作用。并且 Shapes 不是 Worksheets 的默认属性。我会继续找...

于 2017-09-28T20:57:07.660 回答