1

我继承了一个 VB6 应用程序,我可以在其中的一部分方面提供一些帮助。

该代码打开一个 word 文档并复制其内容。完成后,它将打开另一个文档并将第一个文档中的内容粘贴到第二个文档中。打开,复制和粘贴工作正常,问题在于粘贴文本的格式及其后面的分节符。不是在分节符之后直接出现,而是放在另一页上,但分节符仍然说它是连续的。我做了一些挖掘并尝试了下面所说的

粘贴时停止边距调整 - Microsoft Community

将文档复制并粘贴到模板时出现边距问题 - Microsoft Community

分节符导致 word 中出现意外的分页符

分页符和分节符疑难解答 - Word - Office.com

这些都没有帮助。代码的精简版如下:

    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。

在此先感谢您的帮助。

4

2 回答 2

0

我设法摆脱了这个问题。看起来这与文档有关,而不是与代码有关。我已经将页眉和页脚从一个文档复制到另一个文档,这一次似乎奏效了。以前的复制尝试似乎没有任何区别。不是一个理想的解决方案,但至少它是排序的。

于 2013-02-28T09:46:41.493 回答
0

我找到了解决方案,而且我认为它更简单。只需在粘贴内容之前保存文档。这使得 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"
于 2017-08-18T15:44:14.030 回答