我遇到了一些郵件合併代碼的問題,它應該在我們的應用程序中生成字母。我知道這段代碼目前有點粗糙,但在我們收拾整理之前,我們處於「Get something working」階段。自動化Word Mailmerge不按預期方式工作
現在,這是應該的工作方式,它的工作方式,當我們手動做,我們有一個文件(fileOut變量+「。模板」),這是一個字母的模板。我們打開該模板,合併它,然後將它作爲文件名保存在fileOut變量中。
然而,它在做什麼是儲蓄,而不是合併的輸出模板文件的文件名FILEOUT的副本。
我搜索了,我似乎是撞我的頭撞牆。
數據文件是包含合併數據的數據文件。
使用相同的文件,如果你手工做這一切工作。
Public Function processFile(ByVal datafile As String, ByVal fileOut As String) As String
Dim ans As String = String.Empty
errorLog = "C:\Temp\Template_error.log"
If (File.Exists(datafile)) Then
Try
' Create an instance of Word and make it invisible.'
wrdApp = CreateObject("Word.Application")
wrdApp.Visible = False
' Add a new document.'
wrdDoc = wrdApp.Documents.Add(fileOut & ".template")
wrdDoc.Select()
Dim wrdSelection As Word.Selection
Dim wrdMailMerge As Word.MailMerge
wrdDoc.MailMerge.OpenDataSource(datafile)
wrdSelection = wrdApp.Selection()
wrdMailMerge = wrdDoc.MailMerge()
With wrdMailMerge
.Execute()
End With
wrdDoc.SaveAs(fileOut)
wrdApp.Quit(False)
' Release References.'
wrdSelection = Nothing
wrdMailMerge = Nothing
wrdDoc = Nothing
wrdApp = Nothing
ans = "Merged OK"
Call writeToLogFile(errorLog, "This worked, written to " & fileOut)
Catch ex As Exception
ans = "error : exception thrown " & ex.ToString
Call writeToLogFile(errorLog, ans)
End Try
Else
ans = "error ; unable to open Date File : " & datafile
If (logErrors) Then
Call writeToLogFile(errorLog, "The specified source csv file does not exist. Unable " & _
"to process it. Filename provided: " & datafile)
End If
End If
Return ans
End Function
我澄清一下代碼。該變量是錯誤的,而templateName實際上是數據源。我說代碼很粗糙:) – hulver 2008-10-01 06:56:02