使用VB6从一个文档粘贴到另一个文档后,Word文档中的页边距不正确
我继承了一个VB6应用程序,我可以用它的一部分做一些帮助 代码打开word文档并复制其内容。完成后,它将打开另一个文档,并将第一个文档中的内容粘贴到第二个文档中。打开、复制和粘贴工作正常,问题在于粘贴文本的格式以及随后的分节符。分节符不是直接出现在分节符之后,而是放在另一页上,但是分节符仍然表示它是连续的。我已经做了一些挖掘,并尝试了它在下面所说的 这些都没有帮助。代码的精简版本如下所示:使用VB6从一个文档粘贴到另一个文档后,Word文档中的页边距不正确,vb6,ms-word,interop,Vb6,Ms Word,Interop,我继承了一个VB6应用程序,我可以用它的一部分做一些帮助 代码打开word文档并复制其内容。完成后,它将打开另一个文档,并将第一个文档中的内容粘贴到第二个文档中。打开、复制和粘贴工作正常,问题在于粘贴文本的格式以及随后的分节符。分节符不是直接出现在分节符之后,而是放在另一页上,但是分节符仍然表示它是连续的。我已经做了一些挖掘,并尝试了它在下面所说的 这些都没有帮助。代码的精简版本如下所示: GetWord97Object objWordApp objWordApp.Visible =
GetWord97Object objWordApp
objWordApp.Visible = True
objWordApp.documents.Open strCopyFromDoc
DeleteHeadersAndFooters objWordApp.documents(strCopyFromDoc)
objWordApp.documents(strCompyFromDoc).content.Copy
objWordApp.documents.Open strCopyToDoc
objWordApp.documents(strCopyToDoc).characters(objWordApp.ActiveDocument.characters.Count).Select
Set objRng = objWordApp.ActiveDocument.content ' Range used so as not to overwrite original text
objRng.Collapse Direction:=0
If IsWordAppVersionLessThan2002(CInt(objWordApp.Version)) Then
objRng.Paste
Else
objRng.PasteAndFormat wdPasteDefault
End If
我试过粘贴和格式化,但没有用。
我使用的Word版本是2002 SP3,但我需要它来处理2002及以上版本。VB6位于SP6
提前谢谢你的帮助。我已经设法解决了这个问题。看起来这与文档有关,而不是与代码有关。我已经给出了将页眉和页脚从一个文档复制到另一个文档的方法,这一次似乎奏效了。以前的复制尝试似乎没有任何区别。这不是一个理想的解决方案,但至少它是经过排序的。我找到了解决方案,而且比我想象的更简单。只需在粘贴内容之前保存文档即可。这使得Word保留了原始的页边距定义。在我的代码中我做到了
Private Sub CommandButton4_Click()
Dim Item As String
Dim i As Integer
For i = 0 To ProcList.ListCount - 1
Dim docNew As Document
Dim docproc As Document
Set docNew = Word.ActiveDocument
docNew.Content.Copy
Set docproc = Documents.Add
With docproc
.SaveAs FileName:=ProcList.List(i)
Selection.ClearParagraphAllFormatting
Selection.Paste
End With
Next i"
更进一步的修补发现,我需要在分节符和文本开始位置之间至少有两次返回,否则它会将文本放到另一页上。