Невозможно заставить работать команду печати документа ... Я выполняю слияние по почте, и эта часть работает отлично. Моя единственная проблема - печать документа после слияния. Я пытался исследовать это в Интернете, но не смог найти ничего похожего. Если я использую, Printout Range: = Printcurrentpage все работает отлично, за исключением того, что будет напечатана только первая страница из 4 (очевидно). Но если я использую Printalldocument или printallpages , задание на печать, похоже, застревает в цикле. Документ Word возвращает сообщение, в котором говорится что-то вроде «Пожалуйста, подождите ... Word пытается .....». Как я могу закодировать это так: A. Распечатать документ B. Распечатать весь документ
Вот код ...
Private Sub cmdprint_Click()
Dim Sheet As Worksheet, wsName As String, DataSource As String, WordPath As String
Dim WordApp As New Word.Application, WordDoc As Word.Document, StrName As String
With ActiveWorkbook
DataSource = .FullName
WordPath = .Path & "\MailMerge_DD220.docx"
wsName = .Sheets("dd220").Name
StrName = .Sheets("dd220").Range("C2").Text
SavePath = .Path & "\DD220 Forms\"
End With
With WordApp
.Visible = True
.DisplayAlerts = wdAlertsNone
Set WordDoc = .Documents.Open(WordPath, AddToRecentFiles:=False)
With WordDoc
'Select Data Source and Complete Mail Merge
With .MailMerge
.MainDocumentType = wdFormLetters
.Destination = wdSendToNewDocument
.OpenDataSource Name:=DataSource, ConfirmConversions:=False, ReadOnly:=False, nkToSource:=True,_
AddToRecentFiles:=False, PassWordDocument:="", PasswordTemplate:="",WritePassWordDocument:="",_
WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, SubType:=wdMergeSubTypeAccess, _
Connection:="Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=DataSource;Mode=Read;" & _
"Extended Properties=""HDR=YES;IME", SQLStatement:="SELECT * FROM `" & wsName & "$`", SQLStatement1:=""
With .DataSource
.FirstRecord = wdDefaultFirstRecord
.LastRecord = wdDefaultLastRecord
.ActiveRecord = wdDefaultActiveRecord
End With
.Execute Pause:=False
End With
.Close SaveChanges:=False
End With
With .ActiveDocument
NewFileName = StrName & " - DD220 - " & Format(Date, "dd mmm yyyy") & ".docx"
.SaveAs savepath + NewFileName, FileFormat:=wdFormatXMLDocument, AddToRecentFiles:=False
WordApp.Application.DisplayAlerts = wdAlertsNone
.PrintOut Background = False ', , Range:=wdPrintAllDocument
.Close SaveChanges:=False
End With
.DisplayAlerts = wdAlertsAll
.Quit
End With
Set WordDoc = Nothing: Set WordApp = Nothing
End Sub