Office Interop 12在MailMerge.OpenDataSource上失败

问题描述 投票:1回答:1

我有一个ac#项目,该项目使具有Office.Interop版本12和Office 2013的dotx文件和xls文件之间的邮件合并。它可以在生产环境中使用,但不能在开发中使用,同一代码在Interop版本14和Office中运行2016,但我无法更改服务器版本。错误显示为“ HRESULT:0x800706BE”,没有更多信息。我尝试了一些文件夹访问(每个人都具有完全访问权限),安装了.net framework 1.1,更改了组件服务,但所有这些都没有成功。有人有解决的想法吗?

此处失败:

Doc.MailMerge.OpenDataSource(Name: fileName, SQLStatement: sqlStmt);
c# com office-interop
1个回答
0
投票

尚不清楚传递给OpenDataSource方法的实际参数是什么...

无论如何,请尝试使用VBA宏来检查代码的工作方式,而不依赖于.net框架和其他内容。本示例创建一个新的主文档,并附加名为Names.xls的Excel工作表。 Connection参数从名为“ Sales”的范围检索数据。

Dim docNew As Document 

Set docNew = Documents.Add 

With docNew.MailMerge 
 .MainDocumentType = wdCatalog 
 .OpenDataSource Name:="C:\Documents\Names.xls", _ 
 ReadOnly:=True, _ 
 Connection:="Sales" 
End With
© www.soinside.com 2019 - 2024. All rights reserved.