Excel COM server BUG?



Excel版本15(2013),在Windows 8中。

复制步骤:

  1. 以编程方式打开Excel和XLA文件
  2. 请确保没有其他工作簿打开
  3. 设置Excel。应用Visible=True

Excel对象被破坏,并在随后的COM消息中产生错误。

如果除了XLA之外还有一个打开的工作簿,那么一切都很好。但如果XLA是唯一一本公开的书,它就会失败。

问题:只有我,还是这是COM Excel服务器错误?

看起来Excel GUI和该版本中引入的Excel COM服务器之间存在错位。

在旧版本中,当关闭最后一个工作簿时,服务器和GUI的行为方式相同:一个空的GUI(即上面没有工作簿)仍然可见,前提是它在关闭最后一本书之前是可见的。

然而,这种行为在版本15(大约)中发生了变化,现在当您关闭最后一本书时,GUI会被隐藏,而服务器则不会。这会导致,如果COM客户端在GUI可见时关闭最后一个工作簿,则服务器不会将其变为不可见,因此它将以某种方式获取不兼容状态,这是无法从GUI访问的。

这个问题似乎是在Excel GUI发生变化时引入的,因为它现在为每个工作簿分配了一个独立的窗口。

因此,解决方案是让客户端在关闭最后一本打开的书时确保GUI不可见。

如果加载了外接程序,这个问题似乎会加剧。也许发生的情况是外接程序(这是我的猜测)与某个隐藏的窗口相关联,现在客户端必须解决的问题涉及上一本书的窗口(现已关闭)和与外接程序关联的窗口。

相关内容

  • 没有找到相关文章

最新更新