【问题标题】:Excel COM server BUG?Excel COM 服务器 BUG?
【发布时间】:2015-06-23 06:21:52
【问题描述】:

Windows 8 中的 Excel 版本 15 (2013)。

重现步骤:

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

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

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

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

【问题讨论】:

  • 您是否尝试过使用不同的 XLA?

标签: excel com excel-automation com-automation


【解决方案1】:

Excel GUI 和该版本中引入的 Excel COM 服务器之间似乎存在偏差。

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

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

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

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

如果您加载了插件,这个问题似乎会更加严重。也许发生的事情是插件(这是我的猜测)与某个隐藏窗口相关联,现在客户必须解决的问题涉及最后一本书的窗口(现在关闭)和与插件相关联的窗口-在。

【讨论】:

    猜你喜欢
    • 2017-09-09
    • 2015-01-30
    • 2010-09-15
    • 2023-04-02
    • 2023-03-25
    • 2011-11-23
    • 1970-01-01
    • 2010-12-17
    • 2011-01-21
    相关资源
    最近更新 更多