我在使用VB.Net編寫的Windows Forms應用程序時遇到了問題(我沒有編寫它,試圖排除它)。應用程序的一部分使用Word Interop程序集在Word文檔和包含數據的文本文件之間進行郵件合併。由Microsoft Update引起的Office Word Interop問題
幾天前,微軟推出了Word的更新(KB2883013),導致郵件合併停止工作。 Word文檔只是打印出來沒有數據。我很難理解我能做些什麼來解決這個問題。我試着將Interop dll直接複製到項目文件夾,但都沒有什麼不同(不是我真的以爲會這樣,只是不知道還有什麼可以嘗試)。唯一可行的是實際卸載更新,但下一輪自動更新將在下週再次發生。郵件合併的代碼如下,任何建議將不勝感激,我甚至不知道從哪裏開始解決這個問題。 Word文檔和數據文件都位於AppData文件夾中。
wordApp.Documents.Open(FileName:=returnAppPath() & "mergedoc.doc")
wordApp.ActiveDocument.MailMerge.OpenDataSource(Name:= _
returnAppPath() & "inputdata.txt", _
ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
Format:=Word.WdOpenFormat.wdOpenFormatAuto, Connection:="", SQLStatement:="", SQLStatement1 _
:="", SubType:=Word.WdMergeSubType.wdMergeSubTypeOther)
With wordApp.ActiveDocument.MailMerge
.Destination = Word.WdMailMergeDestination.wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = Word.WdMailMergeDefaultRecord.wdDefaultFirstRecord
.LastRecord = Word.WdMailMergeDefaultRecord.wdDefaultLastRecord
End With
.Execute(Pause:=False)
End With
Dim intCopies As Integer = CInt(numudCopies.Value)
wordApp.Application.PrintOut(FileName:="", Range:=Word.WdPrintOutRange.wdPrintAllDocument, Item:= _
Word.WdPrintOutItem.wdPrintDocumentContent, Copies:=CObj(intCopies), Pages:="", PageType:=Word.WdPrintOutPages.wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0)
wordApp.ActiveWindow.Close(False)
wordApp.ActiveDocument.Close(SaveChanges:=Word.WdSaveOptions.wdDoNotSaveChanges)
wordApp.Quit()
wordApp = Nothing