Ich versuche, einen einfachen Code zu entwickeln, der mehrere kleine docx (oder rtf) in ein docx kombiniert.Mehrere Worddokumente zusammenführen
Dokumenterstellung auf den folgenden Punkten aufbauen sollte:
1. i in Spalte A eine Liste mit den Namen der kleinen docs
2. in Spalte B eines von 2 Einträgen ist (ja/nein)
ex :
A B
doc1 yes
doc2 no
doc3 yes
doc4 yes
doc5 no
3. i bereits die Lage der kleinen docs in einer Zelle in dem Blatt 4. auch den Ort zugeführt, wo die neuen (fusionierten) doc
geliefert habenunten platziert würde ein Sampl e des Codes
Application.ScreenUpdating = False
strRandom = Replace(Replace(Replace(Now, ":", ""), "/", ""), " ", "")
MergeFileName = "Merger" & strRandom & ".doc"
MergeFolder = mainworkbook.Sheets("Main").Range("L10").Value
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
'objSelection.TypeText ("Saving this file after this text")
objDoc.SaveAs (MergeFolder & MergeFileName)
For i = 1 To NoOfFiles
If Range("B" & i).Value = "Yes" Then
Set objTempWord = CreateObject("Word.Application")
Set tempDoc = objWord.Documents.Open(Folderpath & "\" & Range("A" & i).Value)
'Set wb = Documents.Open(MyPath & "\" & MyName)
Set objTempSelection = objTempWord.Selection
'objTempSelection.WholeStory
'Selection.Copy
tempDoc.Range.Select
tempDoc.Range.Copy
'Windows(1).Activate
'Selection.EndKey Unit:=wdLine
'objSelection.TypeParagraph
objSelection.PasteSpecial xlPasteAll
.InsertBreak wdPageBreak
tempDoc.Close
End If
Next
objDoc.Save
Application.ScreenUpdating = True
mainworkbook.Sheets("Main").Activate
MsgBox "Completed...Merge File is saved at " & MergeFolder & MergeFileName
FetchFileClicked = False
End Sub
das Problem mit diesem Code ist, dass es nie die temp doc tötet geöffnet, so hat ich 10 docs i mit 10 WINWORD Prozess am Ende zusammengeführt werden würde und keine MSWord Fenster. gibt es eine Möglichkeit, dieses Problem zu beheben. Ich habe gehört, dass, wenn ich alle kleinen Dokumente in .rtf konvertieren kann ich die Datei analysieren, ohne sie zu öffnen.
wird jede mögliche Hilfe viel
Jedes Mal erstellen Sie durch Ihre Schleife eine Word-Anwendung, die Sie 'objTempWord' nennen.Sie beenden es nie (weshalb Sie mit 10 WINWORD-Prozessen enden), und Sie scheinen es nur zu verwenden, um ein Objekt namens "objTempSelection" zu erstellen, das Sie nie verwenden. Vielleicht werden Sie den überflüssigen Code los und Ihre Probleme werden verschwinden. (Soweit ich weiß, müssen nicht mehrere Word.Applications ausgeführt werden.) – YowE3K
Wenn ich das richtig verstanden habe, haben Sie eine Liste von Dokumenten, und Sie möchten sie alle in eine Datei einfügen. Ich habe dies mit der Selection.InsertFile-Funktion getan, wo Sie die Speicherorte der Dateien mit CreateObject (Word.Application.Documents.Add) definieren, das die Dateien in der neu geöffneten Word-Datei zusammenführt. Dies würde klar definieren, dass Word verwendet wird und nicht WinWord. Wenn das wie etwas klingt, das funktionieren würde, könnte ich versuchen, Code in einer Antwort hinzuzufügen. – Cyril
@ YowE3K: Wenn ich in diesem Prozess beenden, würde es nie öffnen das nächste Dokument in der Liste, um den Inhalt davon zu kopieren, es sei denn, ich fehlen etw. –