Combine word documents excel macro

rotunda Trying to combine Word documents using Excel macroWindows 10 Trying to combine Word documents using Excel macroOffice 2019

Join Date: Jun 2021 Trying to combine Word documents using Excel macro

Hello, I am using the macro shown below to combine 3 Word documents. When I try to run the macro, I get the error "Run-time error '438': Object doesn't support this property or method" and the debug leads me to the line with Paste (highlighted in yellow in the screenshot). Do I need to include references in addition to the Word library that I've already added? Thanks in advance.

06-09-2021, 03:47 PM

Guessed Trying to combine Word documents using Excel macroWindows 10 Trying to combine Word documents using Excel macroOffice 2016

Join Date: Mar 2010 Location: Canberra/Melbourne Australia Posts: 4,100

We normally try to avoid the selection object and copy/paste when they aren't necessary.

Add Dim aRng as Range to the top of the macro

Delete from objDoc.Range.Copy to End With
In that same location, add this code

Set aRng = objNewDoc.Range aRng.Collapse Direction:=wdCollapseEnd aRng.FormattedText = objDoc.Range.FormattedText

As an aside, you can merge multiple files like this without code.
1. Create a new document
2. Go to Insert > Object > Text from File
3. Pick multiple files (Select and Shift+Select)
4. Click OK

__________________
Andrew Lockton
Chrysalis Design, Melbourne Australia 06-09-2021, 03:58 PM

macropod Trying to combine Word documents using Excel macroWindows 10 Trying to combine Word documents using Excel macroOffice 2016

Administrator Join Date: Dec 2010 Location: Canberra, Australia Posts: 21,978

For comprehensive document-combining code, see the Combine Multiple Word Documents 'Sticky' thread: https://www.msofficeforums.com/word-. documents.html

__________________
Cheers,
Paul Edstein
[Fmr MS MVP - Word] 06-09-2021, 08:51 PM

gmayor Trying to combine Word documents using Excel macroWindows 10 Trying to combine Word documents using Excel macroOffice 2019

Join Date: Aug 2014 Posts: 4,116

If you are working from Excel, you are going to have to tell Excel to open or create a Word application or it will think it is working in Excel. You don't need to set a reference to Word. You can use late binding to Word instead thus:

Option Explicit Sub MergeFilesInAFolderlntoOneDoc() Dim dlgFile As FileDialog Dim wdApp As Object, oRng As Object Dim objDoc As Object, objNewDoc As Object Dim StrFolder As String, strFile As String Set dlgFile = Application.FileDialog(msoFileDialogFolderPicker) With dlgFile If .Show = -1 Then StrFolder = dlgFile.SelectedItems.Item(1) & Chr(92) Else MsgBox ("No folder is selected!") Exit Sub End If End With On Error Resume Next Set wdApp = GetObject(, "Word.Application") If Err Then Set wdApp = CreateObject("Word.Application") End If On Error GoTo 0 strFile = Dir(StrFolder & "*.docx", vbNormal) With wdApp .Visible = True Set objNewDoc = .Documents.Add While strFile <> "" Set objDoc = .Documents.Open(FileName:=StrFolder & strFile) With objNewDoc Set oRng = .Range If Len(oRng) > 1 Then oRng.Collapse 0 oRng.InsertBreak 7 End If oRng.Collapse 0 oRng.FormattedText = objDoc.Range.FormattedText objDoc.Close 0 End With DoEvents strFile = Dir() Wend objNewDoc.Activate End With End Sub

__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com