如何修复System.Runtime.InteropServices.COMException错误

时间:2018-11-14 18:57:27

标签: c# excel excel-interop

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

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

此方法的工作原理就像一种魅力,除非在其中进行了未提交的更改。未提交的更改是指用户直接进入电子表格并更改活动单元格中的数字而未使用以下其中一项完成更改的情况:

  • 按Enter
  • 按下标签
  • 按下箭头键
  • 点击其他地方

当我再次使用该程序写入受影响的单元格时,出现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链接:How to fix 'Call was rejected by callee' error。我从标有“在此处插入自动化代码”的空间调用了C#方法updateCell_Click。

0 个答案:

没有答案