Home |
Search |
Today's Posts |
#1
![]() |
|||
|
|||
![]()
Hi, I have created a label template in Word and written a macro to print all records (see code below printAllRecords() and attachments) from an Excel datasource. The problem is when I press F2 (defined function key to print all records in my macro), it prints the 1st page once and then print all records (i.e. 1st page is printed twice). Anyone knows why and how to fix it?? Thanks!
[VBA] Sub autoOpen() Dim actPath As String Dim strFileExcel As String actPath = ActiveDocument.Path strFileExcel = actPath + "\CCS Automation Template.xls" ' Get the source and update labels ActiveDocument.MailMerge.OpenDataSource Name:= _ strFileExcel, _ ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _ AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _ WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _ Format:=wdOpenFormatAuto, Connection:= _ "Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Data Source=strFileExcel;Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:Registry Path="""";Jet OLEDB:Engine Type=35;J" _ , SQLStatement:="SELECT * FROM `Consolidate$`", SQLStatement1:="", _ SubType:=wdMergeSubTypeAccess WordBasic.MailMergePropagateLabel ActiveDocument.MailMerge.ViewMailMergeFieldCodes = False With Application '// Refer to THIS document for customisations .CustomizationContext = ThisDocument '// Add keybinding: F2 .KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF2), _ KeyCategory:=wdKeyCategoryCommand, _ Command:="printAllRecords" End With MsgBox "Press F2 button to print all records.", vbOKOnly, "Reminder" End Sub Sub printAllRecords() ' Print all records in mail merge Dim bPrintBackgroud As Boolean 'Disable to display all the alerts bPrintBackgroud = Options.PrintBackground Options.PrintBackground = False Application.DisplayAlerts = wdAlertsNone 'Show the Print dialog box If Dialogs(wdDialogFilePrint).Show -1 Then End 'Print all records With ActiveDocument.MailMerge .Destination = wdSendToPrinter .SuppressBlankLines = True With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=False End With 'Restore all the alerts Application.DisplayAlerts = wdAlertsAll Options.PrintBackground = bPrintBackgroud End Sub [/VBA] |
Thread Tools | |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Diacritics and word template mail merge for printing labels | Microsoft Word Help | |||
Printing Address Labels via Mail Merge in Word 2003 | Microsoft Word Help | |||
Labels printing with Mail merge | Mailmerge | |||
Printing Word 2000 labels from mail merge | Microsoft Word Help | |||
Labels Mail Merge Through VBA Shows Only One Page | Mailmerge |