加载项在启动最小化时使Excel崩溃

时间:2010-09-17 15:08:14

标签: c# process excel-2007 minimize xla

我使用Process.Start(...)从我的C#WinForms应用程序中启动Excel(这有一个原因)。我想在后台启动它,而不会分散用户的注意力,因此我尝试将其启动最小化或隐藏。在这两种情况下,我都会遇到一种非常奇怪的行为:

几秒钟后, Excel恢复窗口(如果它被隐藏,甚至会显示它)然后崩溃说:“Microsoft Office Excel遇到问题,需要关闭。(Win XP崩溃消息。)“

如果我通过双击桌面上的快捷方式图标手动启动Excel,然后立即切换到另一个应用程序窗口,以便 Excel窗口在启动时失去焦点,就会发生同样的事情。 < / p>

仅当任何 XLA加载项包含UserForm 时,才会出现此问题。如果我删除UserForm,问题就会消失。如果我删除加载项,问题就会消失。

感谢任何帮助,只要它是

  • 解释为何会发生这种情况
  • 我可以在加载项中更改的内容
  • 如何解决此错误的方法(不使用COM)
  • 建议使用COM。 (See here to understand why I don't。)
  • 更新Excel的建议(我不能)

重现的步骤:

  • 使用空工作簿启动Excel 2007。
  • 另存为...
    • 文件类型:Excel 2003加载项(* .xla)
    • 位置:%APPDATA%\ Microsoft \ Excel \ XLSTART \ foobar.xla
  • Alt + F11(打开VBA编辑器)
  • 将UserForm添加到项目中。
  • 保存并退出Excel

  • 启动Excel,然后立即点击Firefox或任务栏中的任何选项卡,激活Excel以外的任何窗口。

  • 等待并观看Excel启动,直至崩溃。
  • 重新启动Excel后,它说:

      

    Excel遇到了'foobar'加载项的严重问题。如果您多次看过此消息,则应禁用此加载项并检查是否有可用的更新。要禁用此加载项吗?


详情/发现:

  • Excel版本:12.0.6535.5002,SP2 MSO 12.0.6425.1000
  • 0xA3在他的评论中报道他可以在32位机器上用Excel 12.0.6535.5002,SP2 MSO 12.0.6535.5002重现它
  • 我尝试使用2007加载项(XLAM)。同样的问题,除非它甚至崩溃,如果它不包含任何UserForms。
  • 0xA3报告说,在他的64位机器上它运行,但Excel仍然意外弹出(但不会崩溃)。到目前为止,我的测试人员的机器也是如此。

这是我想在C#中使用的代码(请注意,问题可以完全独立于任何C#应用程序进行复制,参见上文)。

Process.Start(new ProcessStartInfo("excel.exe") 
    { WindowStyle = ProcessWindowStyle.Minimized });

0 个答案:

没有答案