我有一个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);
尚不清楚传递给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