c# - C# - Excel - Office 互操作 - 异常 HRESULT 0x80010100 (RPC_E_SYS_CALL_FAILED)
问题描述
我有一个使用 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));
}
解决方案
我终于找到了在宏的主循环中添加 DoEvents 的解决方案。
推荐阅读
- jmeter - 在响应头中执行脚本后:连接正在关闭
- php - 为什么 wamp localhost 不断向我显示通知?
- anylogic - AnyLogic:如何在直方图中显示代理变量的分布
- amazon-web-services - AWS 实例安全组通过 TCP 授予对自身的访问权限
- javascript - Tampermonkey/Javascript:寻找一种方法来提醒用户注意页面中的 URL
- spring - 没有服务器的 Spring Cloud Config
- java - 来自 Java Web 服务的 JSON 结果中的意外令牌 B
- python - 如何根据列表的范围附加来自不同列表的两个字符串
- typescript - 无法使用 ionic 3 原生日历插件
- c++ - winsock2.h 中的 SOCKET 在 Visual Studio 2017 中不被接受