2013-02-27 104 views
1

我繼承了VB6應用程序,我可以使用它的一部分幫助。使用VB6從一個文檔粘貼到另一個文檔後,Word文檔中的頁邊距不正確

該代碼打開word文檔並複製其內容。完成後,它將打開另一個文檔並將第一個文檔中的內容粘貼到第二個文檔中。打開,複製和粘貼工作正常,問題出現在粘貼文本的格式和分節符後面。不是在分節符之後直接出現,而是放在另一頁上,但分節符仍然表示它是連續的。我做了一些挖掘和試了一下它的這些下列

Stop Margin Adjustment when pasting - Microsoft Community

Problems with margins when I copy and paste a document into template - Microsoft Community

Section break causes unexpected page break in word

Troubleshoot page breaks and section breaks - 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。

在此先感謝您的幫助。

回答

0

我設法擺脫了這個問題。看起來這是對文檔的處理,而不是代碼。我已經將文件的頁眉和頁腳從一個文檔複製到另一個文檔,而且這一次似乎已經奏效。以前的複製嘗試似乎沒有任何區別。不是一個理想的解決方案,但至少它是排序的。

+0

更多補習發現,我需要在分節符和文本開始位置之間至少有兩個返回,否則它會將文本放在另一頁上。 – lardymonkey 2013-02-28 13:37:05

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" 
相關問題