【发布时间】:2016-07-30 22:13:23
【问题描述】:
我想用VBScript来
- 打开已包含合并域的 Word 文档
- 指定一个 Excel 文件和命名范围作为数据源
- 执行合并
类似以下 Microsoft 示例的代码在 VBScript 中不起作用,它似乎讨厌 := 构造。
With docNew.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource _
Name:="C:\Program Files\Microsoft Office\Office" & _
"\Samples\Northwind.mdb", _
LinkToSource:=True, AddToRecentFiles:=False, _
Connection:="TABLE Customers"
MsgBox .DataSource.ConnectString
End With
为了帮助追查问题,我已尝试在 Word 文档中将代码作为 VBA,将 Excel 文件的路径替换为示例的 Access mdb 文件。但我似乎找不到合适的东西作为 Connection 参数。我试过这些:
Connection:="ExternalData_1"
Connection:="TABLE ExternalData_1"
Connection:="Sheet1$ExternalData_1"
Connection:="TABLE Sheet1$ExternalData_1"
2016 年 8 月 2 日编辑 在 Word 模板(邮件合并“主”文档)中不使用 vbs 脚本而是使用 vba 是有意义的。所以现在我的代码如下所示:
With Me.MailMerge
.MainDocumentType = wdFormLetters
.OpenDataSource Name:=sPath & XLSM, Connection:="SELECT * FROM [Sheet1$]", ReadOnly:=True, LinkToSource:=False, AddToRecentFiles:=False
End With
我同时使用了 [Sheet1$] 和 [Sheet1$ExternalData_1] 都没有成功。
此时,显示图像中显示的对话框是一个微不足道的问题,我不再尝试解决它。不过,太糟糕了,答案是如此难以捉摸。
【问题讨论】:
标签: excel vbscript ms-word mailmerge