我正在尝试创建一个简单的.vbs文件,我可以在设定的时间使用任务计划程序自动运行该文件,该文件将打开word doc并对每个收件人执行电子邮件合并。
已经使用预定义字段设置了Word文档,并且包含了数据源“重新连接”以确保正确设置源数据。
我在代码下运行时遇到问题,而代码又会打开2个单词的应用程序(包含所有记录的主文件和新的2页单词文件只有第一个和最后一个记录)。 / p>
请帮我调试一下这段代码,因为我开始失去理智。
Dim wd As Object
Dim WDoc As Object
Dim strWorkbookName As String
On Error Resume Next
Set wd = CreateObject("Word.Application")
wd.Application.Visible = True
Set WDoc = wd.Documents.Open("C:\Users\Documents\test\test.docx")
strWorkbookName = "C:\Users\Documents\test\test_datasource.xlsx"
WDoc.MailMerge.OpenDataSource _
Name:=strWorkbookName, _
ConfirmConversions:=False, _
ReadOnly:=False, _
LinkToSource:=True, _
AddToRecentFiles:=False, _
Revert:=False, _
Format:=0, _
Connection:="Data Source=" & strWorkbookName & ";Mode=Read", _
SQLStatement:="SELECT * FROM `Summary$`"
With WDoc.MailMerge
.Destination = wdSendToEmail
.MailAddressFieldName = "Email"
.MailSubject = "TEST - EMAIL SUBJECT"
.SuppressBlankLines = True
.MailAsAttachment = False
.MailFormat = wdMailFormatHTML
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
End With
.Execute
End With
Set wd = Nothing
Set WDoc = Nothing
End Sub
答案 0 :(得分:0)
可能这可能就足够了:
sub M_snb()
with getobject("C:\Users\Documents\test\test.docx")
with .mailmerge
.Destination = 2
.MailAddressFieldName = "Email"
.MailSubject = "TEST - EMAIL SUBJECT"
.SuppressBlankLines = True
.MailAsAttachment = False
.MailFormat = 1
.execute
end with
.close 0
end with
End sub
NB。在后期绑定中,单词常数不会被识别。