代码之家  ›  专栏  ›  技术社区  ›  chiccodoro

加载项在启动时使Excel崩溃

  •  1
  • chiccodoro  · 技术社区  · 16 年前

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

    几秒钟后,

    Excel窗口在启动过程中失去焦点。

    XLA外接程序包含用户窗体 . 如果删除UserForm,问题就会消失。如果删除外接程序,问题就会消失。

    • 解释为什么会发生这种情况
    • 我可以在外接程序中更改某些内容
    • 一种解决此错误的方法 (不使用COM)
    • 使用COM的建议。( See here to understand why I don't .)
    • 更新Excel的建议(我不能)

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

    • 等待Excel启动,直到它崩溃。
    • 重新启动Excel后,它会显示:


    详情/调查结果:

    • 0xA3在他的评论中说,他可以在32位计算机上用Excel 12.0.6535.5002、SP2 MSO 12.0.6535.5002复制它
    • 我试过使用2007插件(XLAM)。同样的问题,只是如果它不包含任何用户表单,它甚至会崩溃。
    • 0xA3报告说,在他的64位机器上,它工作正常,但Excel仍然意外弹出(但没有崩溃)。到目前为止,我的测试人员的两台机器也是如此。

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

    Process.Start(new ProcessStartInfo("excel.exe") 
        { WindowStyle = ProcessWindowStyle.Minimized });
    
    0 回复  |  直到 9 年前
    推荐文章