2014-10-20 5 views
1

У меня возникла проблема с копированием и вставкой из существующих текстовых документов в новый документ! Я могу получить содержимое из документов 1 и 2, скопированное и вставленное в новый документ с приведенным ниже кодом, однако, когда документ2 вставлен в новый документ, он вставлен непосредственно под материалом, который был скопирован из документа1. Я хочу, чтобы материал, скопированный из документа2, был вставлен на новую страницу под другим материалом, поэтому кто-нибудь, пожалуйста, дайте мне руку с этим или подтолкнуть в правильном направлении.Копирование и вставка из нескольких документов Word VBA

Sub automateword() 

    Dim wordapp As Object 
    Set wordapp = CreateObject("word.Application") 

    ''''creates and saves new Document'''' 
    With CreateObject("Word.Document") 
     .Windows(1).Visible = True 
     .SaveAs Filename:="C:\NewDocumnet.docx", FileFormat:=wdFormatDocument 
    End With 

    wordapp.Documents.Open "C:\Document1.docx" 
    wordapp.Selection.WholeStory 
    wordapp.Selection.Copy 
    wordapp.Documents("C:\NewDocumnet.docx").Activate 
    wordapp.Selection.PasteAndFormat wdInLine 

    wordapp.Documents.Open "C:\Document2.docx" 
    wordapp.Selection.WholeStory 
    wordapp.Selection.Copy 
    wordapp.Documents("C:\NewDocumnet.docx").Activate 
    wordapp.Selection.PasteAndFormat wdInLine 

    wordapp.Visible = True 
End Sub 

ответ

1

Я хочу, чтобы этот материал скопирован с документ2 быть наклеены на новую страницу ниже другого материала

Вставьте разрывы страниц и выполните склейку. Вот пример

oWordApp.Selection.PasteAndFormat wdInLine 

With oWordApp.Selection 
    .Collapse Direction:=0 
    .InsertBreak Type:=7 
End With 

'~~> Put here the copy code. i.e What ever you are copying 

oWordApp.Selection.PasteAndFormat wdInLine 
+0

Это именно то, что я искал! Большое спасибо за помощь – user3538102

+0

Рад, что это сработало для вас :) –

0

У вас есть различные имена файлов, посмотрите на DOCX и docxx расширения ниже:

wordapp.Documents("C:\NewDocumnet.docx").Activate ' 
wordapp.Selection.PasteAndFormat wdInLine 

wordapp.Documents.Open "C:\Document2.docx" 
wordapp.Selection.WholeStory 
wordapp.Selection.Copy 
wordapp.Documents("C:\NewDocumnet.docxx").Activate 'different file name 
wordapp.Selection.PasteAndFormat wdInLine 
+0

Это опечатка извините, это не так, как в моем коде! – user3538102

0

Вы можете использовать следующий фрагмент кода, чтобы добавить разрыв страницы в конце. Это должно содержать копии. Надеюсь, это поможет.

Set MainDoc = Application.Documents.Open(strFolder & "BaseDoc.doc") 
strFile = Dir$(strFolder & "*.doc") ' can change to .docx 
'Loop through all .doc files in that path 
Do Until strFile = "" 
    Set sourcedoc = Application.Documents.Open(strFolder & "*.doc") 
    Application.Selection.WholeStory 
    Application.Selection.Copy 
    Application.ActiveWindow.Close savechanges:=wdDoNotSaveChanges 
    MainDoc.Activate 

    Application.Selection.PasteAndFormat (wdFormatOriginalFormattig) 
    MainDoc.InsertBreak Type:=wdSectionBreakNextPage 
Loop 
Смежные вопросы