【问题标题】:C# - Excel - Office Interop - Exception HRESULT 0x80010100 (RPC_E_SYS_CALL_FAILED)C# - Excel - Office 互操作 - 异常 HRESULT 0x80010100 (RPC_E_SYS_CALL_FAILED)
【发布时间】:2019-02-14 16:41:58
【问题描述】:

我有一个使用 Office Interop 运行 excel 宏的 Windows 窗体应用程序。 我从主 GUI 线程运行宏,但宏运行时间很长,几分钟后它以异常 RPC_E_SYS_CALL_FAILED 告终。

有什么想法吗?

例外是:系统调用失败。 (来自 HRESULT 的异常:0x80010100 (RPC_E_SYS_CALL_FAILED))

我的代码:

    // Excel Objects
    Excel.Application xlApp = null;
    Excel.Workbook xlWorkBookMacro = null;
    Excel.Workbook xlWorkBookBilan = null;

    try
    {
        // Open Excel
        xlApp = new Microsoft.Office.Interop.Excel.Application();

        // Open Workbooks
        xlWorkBookMacro = xlApp.Workbooks.Open(Properties.Settings.Default.PathToMacroBilan);
        xlWorkBookBilan = xlApp.Workbooks.Open(Path.Combine(Folder, Filename));

        // Run Macro
        xlApp.Run(MacroName, Filename, DateBilan.AddHours(HEURE_DEBUT_BILAN).ToString("dd/MM/yyyy HH:mm:ss"), int.Parse(ScheduleRec["no_batch"].ToString()), int.Parse(ScheduleRec["no_oper"].ToString()), int.Parse(ScheduleRec["type_activ"].ToString()), Path.Combine(RepertoireEnrSous, EnrSous), ScheduleRec["edition"].ToString(), ScheduleRec["imprimante"].ToString(), ScheduleRec["orientation"].ToString());

        // Close Workbooks
        xlWorkBookBilan.Close(true);
        xlWorkBookMacro.Close(false);

        // Close Excel
        xlApp.Quit();

        // Clean Excel Objects
        ReleaseExcelObject(xlApp);
        ReleaseExcelObject(xlWorkBookBilan);
        ReleaseExcelObject(xlWorkBookMacro);
    }
    catch (Exception ex)
    {
        TraceLogger.WriteLog(String.Format("Exception : {0}", ex.Message));
    }

【问题讨论】:

  • 发布异常详情。发布您的代码。
  • 异常详情和代码贴出...

标签: c# office-interop


【解决方案1】:

我终于找到了在宏的主循环中添加 DoEvents 的解决方案。

【讨论】:

    猜你喜欢
    • 2013-05-26
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-26
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多