You appear to be using ad blocking software. While I respect your right to do so, please be aware
that the minimal advertising on this site helps defray the cost of providing this facility, and I would therefore ask that you turn off
the blocker while browsing this site.
Many people access the material from this web site daily.
Most just take what they want and run. That's OK, provided they
are not selling on the material as their own; however if your
productivity gains from the material you have used, a donation
from the money you have saved would help to ensure the continued
availability of this resource. Click the appropriate button
above to access PayPal.
Correct an inability to fully propagate labels in mail merge
For some time Microsoft users have been aware of a problem relating to the failure
to fully propagate labels in Word's mail merge function, when used with a Tablet
PC. e.g. If you insert an Address block in the first label position, and then tap Update
all labels at step 4 of 6 in the Mail Merge wizard, only the first row and the last two
labels on the last row will be updated with the AddressBlock field. The other labels
will only have the Next Record field inserted.
However it now appears that with the introduction of Office 2007, the problem may be
more widespread, as a user in the Word mail merge forum found that he experienced the
same issue with a Dell Dimension DXP061 2.4GHZ Intel dual core, 4 GB RAM, running Vista Home Premium, & Office 2007.
To address this, until Microsoft creates a fix, fellow MVP Doug Robbins has come up with another of
his handy macro solutions, which is posted below. This intercepts and replaces the in-built propagation tool.
The Macro Code
Sub MailMergePropagateLabel()
Dim atable As Table
Dim i As Long
Dim j As Long
Dim source As Cell
Dim target As Cell
Dim myrange As Range
Set atable = ActiveDocument.Tables(1)
Set source = atable.Cell(1, 1)
Set myrange = source.Range
myrange.Collapse wdCollapseStart
ActiveDocument.Fields.Add Range:=myrange, Text:="NEXT", _
PreserveFormatting:=False
source.Range.Copy
For j = 2 To atable.Columns.Count
Set target = atable.Cell(1, j)
If target.Range.Fields.Count > 0 Then
target.Range.Paste
End If
Next j
For i = 2 To atable.Rows.Count
For j = 1 To atable.Columns.Count
Set target = atable.Cell(i, j)
If target.Range.Fields.Count > 0 Then
target.Range.Paste
End If
Next j
Next i
atable.Cell(1, 1).Range.Fields(1).Delete
End Sub