|
|
See http://www.gmayor.com/installing_macro.htm
--
Graham Mayor - Word MVP
My web site www.gmayor.com
Word MVP web site http://word.mvps.org
krstnl wrote:
I'm very new, please forgive. My data source is an Access table.
How do I use these scripts? I have a source document, an Access
table data source, and a merged target document that has 15 reports
strung together like a roll of toilet paper. I'd like 15 separate
documents named based on one of the fields. Thank you.
"Doug Robbins" wrote:
For saving individual mergedocuments, you can use either of the
following:
Sub splitter()
' splitter Macro
' Macro created by Doug Robbins to save each letter created by a
mailmerge as a separate file.
Dim i As Long, Source as Document, Target as Document, Letter as
Range
Set Source = ActiveDocument
For i = 1 to Source.Sections.Count
Set Letter = Source.Sections(i).Range
Letter.End=Letter.End-1
Set Target = Documents.Add
Target.Range=Letter
Target.SaveAs FileName:="Letter" & i
Target.Close
Next i
End Sub
If you want each file to be named based on one of the fields in the
data source,
here's a method that I have used that involves creating a separate
catalog type mailmerge maindocument which creates a word document
containing a table in each row of which would be your data from the
database that you want to use as the filename.
You first execute that mailmerge, then save that file and close it.
Then execute the mailmerge that you want to create the separate
files from and with the
result of that on the screen, run a macro containing the following
code
and when the File open dialog appears, select the file containing
the table created by the first mailmerge
' Throw Away Macro created by Doug Robbins
'
Dim Source As Document, oblist As Document, DocName As Range,
DocumentName As String
Dim i As Long, doctext As Range, target As Document
Set Source = ActiveDocument
With Dialogs(wdDialogFileOpen)
.Show
End With
Set oblist = ActiveDocument
Counter = 1
For i = 1 To oblist.Tables(1).Rows.Count
Set DocName = oblist.Tables(1).Cell(i, 1).Range
DocName.End = DocName.End - 1
'Change the path in the following command to suit where you want
to save the documents.
DocumentName = "I:\WorkArea\Documentum\" & DocName.Text
Set doctext = Source.Sections(i).Range
doctext.End = doctext.End - 1
Set target = Documents.Add
target.Range.FormattedText = doctext
target.SaveAs FileName:=DocumentName
target.Close
Next i
--
Hope this helps.
Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.
Doug Robbins - Word MVP
"KMMartin" wrote in message
...
I have a single document that I need to merge customer numbers into
and then
save as separate documents. There are over 200 so I don't want to
do this manually. I can perform the merge - that's easy. It's
getting the merge to
save the results as multiple files rather than a single file of
multiple pages that I'm having problems with. Please help!
|