Copy formatted text but not headers/footers

J

Jamie Collins

I have the following VBA code to copy some text from between Word documents
(I'm familiar with VBA but not the Word object library):

Const PLACEHOLDER_TEXT As String = "||ADD TEXT HERE||"

' Copy from source to clipboard
docSource.Activate
docSource.Sections(x).Range.Copy

' Paste from clipboard to target
docTarget.Activate
Selection.Find.Execute PLACEHOLDER_TEXT, , , , , , True,
WdFindWrap.wdFindContinue
Selection.Paste

What I want is for the section's formatted text to be copied/pasted into the
existing section in the target document so that the headers/footers in the
target document are preserved.

However, what seems to be happening is that the copied text is pasted as a
new Section object including the now empty headers/footers.

In other words, I want the formatting (fonts, tables, borders, etc) from the
source document but not the headers/footers. Is this possible? Thanks
 
J

Jamie Collins

It seems the root of the problem is that selecting the Section.Range object
included the page break.

The fix I'm going with is to move the selection end of the back until the
end character is anything other than ASCII 0012 or 0013 e.g.

Replace this:

docSource.Sections(x).Range.Copy

....with this:

docSource.Sections(x).Range.Select
Do While (Asc(Right$(Selection.Range.Text, 1)) = 12 Or
Asc(Right$(Selection.Range.Text, 1)) = 13)
docSource.Range(Selection.Start, Selection.End - 1).Select
Loop
Selection.Copy

No doubt there are betters way of doing this things than using the clipboard
and the Selection object but this will do for now :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top