首页 > 解决方案 > 如何修复 System.Runtime.InteropServices.COMException 错误

问题描述

我创建了一个 C# WinForms 项目,它计算数值并将它们写入打开的 Excel 电子表格。该程序通过允许用户在 Excel 程序中打开电子表格来工作。写入是通过一种名为的方法执行的,该方法private void updateExcel_Click(object sender, EventArgs e)如下所示:

if (*in range*)
    MySheet.Cells[activeRow, activeColumn].Value = total;

这种方法就像一个魅力,除非有一个未提交的更改。通过未提交的更改,我的意思是当用户直接进入电子表格并更改活动单元格中的数字而不使用以下之一完成更改时:

当我使用程序再次写入受影响的单元格时,我收到 System.Runtime.InteropServices.COMException 错误。全文为:

引发异常:System.Dynamic.dll 中的“System.Runtime.InteropServices.COMException” System.Dynamic.dll 中发生“System.Runtime.InteropServices.COMException”类型的未处理异常调用被调用者拒绝。(来自 HRESULT 的异常:0x80010001 (RPC_E_CALL_REJECTED))

奇怪的是,当使用项目符号方法之一完成直接用户更改时,当我用程序重写单元格时,我没有收到任何错误。如何修复我的程序以避免 COMException 错误?

我已经尝试按照 msdn 链接进行操作:如何修复 'Call was denied by callee' 错误。我从标有“在此处插入您的自动化代码”的空间中调用了 C# 方法 updateCell_Click。

标签: c#excelexcel-interop

解决方案


推荐阅读