20

我在控制台应用程序中编写了一个 C# 代码来打开两个 excel 并将数据从一个 excel 复制并粘贴到另一个 excel。在目标 excel 的可见性为真之前,它工作正常。但我需要在执行时隐藏excel。所以我将可见性更改为false。喜欢,

  _destExcelApp = new Excel.ApplicationClass();
  _destExcelApp.Visible = false;

现在它显示一个异常

呼叫被被呼叫者拒绝。(来自 HRESULT 的异常:0x80010001 (RPC_E_CALL_REJECTED))

这个怎么解决?

4

13 回答 13

27

当我将应用程序部署到没有完全激活和许可安装 Excel 的机器上时,我遇到了同样的错误。我花了几个小时试图诊断这个问题。确保检查 Office 安装以确保它们是完整的。

于 2014-02-19T21:33:02.840 回答
12

我在这个问题的帮助下解决了这种行为:

“呼叫被被呼叫者拒绝”的奇怪行为。Excel 例外

问题只是当我发出命令Workbook.Open时还没有完成。Worksheet.SaveAs所以有时,脚本会起作用,有时不会。

我只是在脚本中添加了一个暂停,Workbook.Open然后它就起作用了。我继续寻找一个属性Ready,这让我可以做我想做的事:

$excel = New-Object -ComObject "Excel.Application" -ea Stop
$wb = $excel.Workbooks.Open($workbook)
$sheet = $wb.Sheets("List")
while (-not $excel.Ready) {
     sleep 1
}
$sheet.SaveAs($csvpath,6)

因此,就我而言,它与未激活或损坏的 Excel 安装无关。

于 2019-01-10T10:13:47.057 回答
6

确保 MS Word/Excel 没有显示需要响应的对话框。

我在导致失败的行上设置了一个断点,然后.Visible在 PowerShell 中设置为 true,以找到以下内容:

$word.Visible = $true

MS Word 设置默认程序提示

在我单击“是”并更新设置后,在我重新运行脚本化 COM 交互后,它们成功了。

于 2018-01-09T00:07:55.083 回答
5

我面临同样的错误,建议的许多解决方案对我不起作用。我有一个在 Windows 8 中运行的应用程序,我发现问题是 Excel 总是要求为“xlsx”扩展选择默认应用程序。执行应用程序时没有出现窗口对话框,只显示错误。

我解决了问题,转到控制面板 > 程序 > 默认程序并将 Microsoft Office Excel 2016 设置为 xlsx 文件的默认程序。

于 2017-06-05T14:55:00.987 回答
3

我在 Word 中遇到了这个问题,我的解决方案是卸载 OpenOffice。我不确定是否有另一种解决方案,但很可能与 dll 有关,并且与您以编程方式生成的特定文件的默认文件处理程序发生冲突。

于 2015-05-12T11:10:02.270 回答
2

您是在将一系列信息从一个文档复制到另一个文档,还是在两个文档之间来回复制一个单元格?Excel 是单线程的,因此如果您来回切换,可能会导致此问题。

于 2013-12-11T16:50:27.387 回答
2

我同意那些说必须激活 excel 许可证的人,我遇到了同样的问题,我激活了许可证一切正常 - Papiki

于 2020-02-26T06:06:51.947 回答
2

在我的机器上遇到了这个问题。Excel 已完全激活并且已经是 .xlsx 文件的默认程序。我正在加载使用数据透视表创建的工作簿模板,并让脚本更新表中的数据。事实证明,如果在数据透视表选项 > 数据下将数据透视表设置为“打开文件时刷新数据”,则会导致某种线程争用问题。
打开时禁用刷新解决了这个问题。

于 2018-11-13T18:14:13.077 回答
2

就我而言,我只是重新启动了我的机器,发现有一个 Windows 更新挂起。重启机器解决了我的问题。

于 2019-04-05T18:51:34.100 回答
1

我今天在 Excel 2016 中遇到了这个错误。

我们发现有此问题的计算机激活了一些加载项。

奇怪的是,一台电脑需要很长时间才能开始 excel。停用加载项后,我们的程序运行良好。

奇怪的是,我们无法在我们的开发 PC 上重现这一点。

于 2018-02-06T12:33:25.673 回答
1

我也有同样的问题。我在“Windows XP x86”上运行该程序,它因类似的错误而崩溃。问题在于:

sheetSource.Cells(i, iColumn).Interior.Color = RGB(255, 255, 0)

此行的多次执行导致崩溃。当我立即删除它时,一切都开始正常工作。

于 2021-01-15T12:53:39.377 回答
0

除了上述解决方案之外,我还可以提供另一件需要注意的事情,这些解决方案似乎与此评论一致(根据 Alielson Piffer 的回答),

SUMMARY: So by the answers here we could conclude that this error may occur when Excel is showing any message in a popup window like for example "This software is not activated" or "Do you want Excel to be the default application for DOCX files?". – Elmue Jun 12 '17 at 22:43

没有打开的消息框或提示,但任务管理器中有一个未结束的进程(在我的情况下为 Word.exe),我需要结束。那解决了它。

这可以解释为什么重新启动会帮助另一个用户。

于 2020-06-05T07:13:18.883 回答
0

确保检查 Office 安装以确保它们是完整的。

否则请尝试以下

在写入所有数据后尝试 App visibility false 然后打开 Visibility ex Dim wapp As new excel.Application .... 。. wapp.Visible = false

'做你的写作...... . . .

'然后打开你的可见性

wapp.Visible = True

于 2020-06-12T06:59:38.310 回答