c# - 如何修复 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。
解决方案
推荐阅读
- angular - 角度8中的延迟加载模块
- docker - 服务器重启后节点状态仍为DOWN
- java - 图片 url 更改后 RecyclerView 上的图片未更新
- android - 最佳图像压缩库
- python - 与 pandas read_csv() 相比,加载 1 000 000+ 行的 1 列更有效的方法是什么?
- regex - 从名称字段中提取首字母,在每个首字母之后添加句点
- javascript - javascript中是否有可能在没有加号的情况下增加变量?
- python-2.7 - AWS IAM Python 脚本 - 将新用户添加到现有组
- regex - 正则表达式:选择最后一个下划线和点之间的所有文本
- php - 当我通过 DatabaseSeeder 调用它时找不到 Laravel Seeder 类