Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Mailmerge and Fax / November 2004

Tip: Looking for answers? Try searching our database.

Extra page copied over when I do a copy from a merged doc

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Hotwheels - 18 Nov 2004 22:09 GMT
When I do Sections.First.Range.Copy and then do a paste into a new document,
I get an extra page at the end of the new document.    The template has two
pages,  the merged document has two pages, but the new document gets three
pages.  I also noticed that it has two sections?  I tried the same code with
a simple document and did the same copy and paste without a merge and only
two pages came over and one section.   How can I get rid of this second
section?
Why am I creating  two sections when I do a merge and a copy and paste?

Mike

Dim oWrd As Object
Dim oMergeDoc As Object
Dim oDoc As Object

   Set oWrd = CreateObject("Word.Application")
   Set oDoc = oWrd.Documents.Open("c:\mikestest\TempTemplate.doc")
   oDoc.MailMerge.MainDocumentType = wdFormLetters
   oDoc.MailMerge.OpenDataSource Name:="c:\mikestest\data2.dat"
   oWrd.Visible = True
   oWrd.Activate
   Screen.MousePointer = vbDefault
   oDoc.MailMerge.Destination = wdSendToNewDocument
   oDoc.MailMerge.Execute
   Set oMergeDoc = oWrd.ActiveDocument
   oMergeDoc.Sections.First.Range.Copy
   oMergeDoc.Activate
   oWrd.Documents.Add
   oWrd.Selection.Paste
   oWrd.ActiveDocument.SaveAs FileName:="c:\mikestest\mikestest2"
   oWrd.ActiveDocument.Close
   oMergeDoc.Saved = True
   oMergeDoc.Close
   oDoc.MailMerge.MainDocumentType = wdNotAMergeDocument
   oDoc.Save
   oDoc.Close
   oWrd.Quit
   
   Set oMergeDoc = Nothing
   Set oDoc = Nothing
   Set oWrd = Nothing
Doug Robbins - 18 Nov 2004 23:48 GMT
Set a Range object to the .Range of the Section and then use

[Rangeobject].End = [Rangeobject].End - 1

so that the Section break is excluded from the range.

Here's an example where that is done:

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

Please respond to the Newsgroup for the benefit of others who may be
interested.   Questions sent directly to me will only be answered on a paid
consulting basis.

Hope this helps,
Doug Robbins - Word MVP
> When I do Sections.First.Range.Copy and then do a paste into a new
> document,
[quoted text clipped - 40 lines]
>    Set oDoc = Nothing
>    Set oWrd = Nothing
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.