![]() |
|
#1
|
|||
|
|||
|
Hey,
Can I extract all tables in multiple word documents to a new word document? I need to get all tables from a batch of word documents to compare and print them. Now I can only copy and paste them to the new document one by one manually. But there are almost 25 files and each file contains a lot of tables. how to do that quickly? Thank you for help. |
|
#2
|
||||
|
||||
|
Maybe something like the following, which also produces a log of the documents processed and the number of tables extracted.
Code:
Option Explicit
Sub BatchCopyTables()
'Graham Mayor - http://www.gmayor.com - Last updated - 06/05/2017
Dim strFileName As String
Dim strPath As String
Dim oDoc As Document, oNewDoc As Document
Dim oTable As Range, oRng As Range
Dim oLog As Document
Dim bFound As Boolean
Dim fDialog As FileDialog
Dim oColl As New Collection
Dim i As Long, j As Long, k As Long
Set fDialog = Application.FileDialog(msoFileDialogFolderPicker)
With fDialog
.Title = "Select folder and click OK"
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , _
"List Folder Contents"
GoTo lbl_Exit
End If
strPath = fDialog.SelectedItems.Item(1) & Chr(92)
End With
Set oNewDoc = Documents.Add
strFileName = Dir$(strPath & "*.doc")
While Len(strFileName) <> 0
Set oDoc = Documents.Open(FileName:=strPath & strFileName, AddtoRecentFiles:=False)
bFound = False
If oDoc.ProtectionType = wdNoProtection Then
If oDoc.Tables.Count > 0 Then
k = 0
bFound = True
For i = 1 To oDoc.Tables.Count
Set oTable = oDoc.Tables(i).Range
oTable.Copy
Set oRng = oNewDoc.Range
oRng.Collapse 0
oRng.InsertParagraphAfter
Set oRng = oNewDoc.Range
oRng.Collapse 0
oRng.Paste
k = k + 1
DoEvents
Next i
If bFound = True Then
oColl.Add strFileName & vbTab & k & " tables copied"
End If
End If
DoEvents
End If
oDoc.Close SaveChanges:=wdDoNotSaveChanges
strFileName = Dir$()
Wend
Set oLog = Documents.Add
For j = 1 To oColl.Count
oLog.Range.InsertAfter oColl(j) & vbCr
Next j
lbl_Exit:
Exit Sub
End Sub
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#3
|
||||
|
||||
|
Cross-posted at: https://www.office-forums.com/thread...ments.2349954/
and: https://answers.microsoft.com/en-us/...a-e0609bc253bb For cross-posting etiquette, please read: http://www.excelguru.ca/content.php?184
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#4
|
|||
|
|||
|
hi,Graham
I'm really appreciated for your help, the macro works well to me ! |
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
How to extract sections with the same heading from multiple documents and merge into new single doc
|
edumac | Word | 2 | 04-10-2017 04:11 PM |
Link Tables in multiple documents
|
Stormie | Word Tables | 4 | 05-24-2016 06:53 PM |
| Extract Data from Word Documents | hiwire03 | Word VBA | 3 | 01-29-2016 09:19 PM |
Batch create Word documents
|
cdfj | Word VBA | 6 | 11-07-2012 01:03 PM |
VBA code to extract specific bookmarks from multiple word files
|
Rattykins | Word VBA | 4 | 06-27-2012 10:02 PM |