try this Sub import_word_table_to_excel() Application.DisplayAlerts = False Application.ScreenUpdating = False Dim fldpath Dim fld, fil As Object Dim appWord As Word.Application Dim docWord As Word.Document Dim tableWord As Word.Table Dim sdoc As String
' use to choose the folder having word documents Application.FileDialog(msoFileDialogFolderPicker).Title = "Choose Folder" Application.FileDialog(msoFileDialogFolderPicker).Show fldpath = Application.FileDialog(msoFileDialogFolderPicker).SelectedItems(1) & "\" Set fso = CreateObject("scripting.filesystemobject") Set fld = fso.getfolder(fldpath) Set appWord = New Word.Application appWord.Visible = True For Each fil In fld.Files ' browse word documents in a folder If UCase(Right(fil.Path, 4)) = UCase(".doc") Or UCase(Right(fil.Path, 5)) = UCase(".docx") Then Set docWord = appWord.Documents.Open(fil.Path) For Each tableWord In docWord.Tables ' copy word tables tableWord.Range.Copy ' paste it on sheet 1 of excel file Sheets(1).Paste Destination:=Sheets(1).Range("A65356").End(xlUp).Offset(1, 0) Next docWord.Close End If Next fil appWord.Quit Sheets(1).Select Set tableWord = Nothing Set docWord = Nothing Set appWord = Nothing Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub On Mon, Sep 30, 2013 at 12:47 PM, Nasir Khan <nasirkhan.du...@gmail.com>wrote: > > Hello All, > I have got lot of MS Word files in a folder eg. C:\Test\<many folders here> > I wish to copy and paste the Tables from all the word documents in the > above mentioned folder to excel. > > I found Macro1 (see below) which copy and paste the Table in Excel. > My requirement is to get the tables from all the documents from each > folder in the path C:\Test\ > Can Macro 1 be amended *to copy and paste all tables from each folder in > C:\Test\* > > *MACRO 1 TO IMPORT WORD TABLE* > Sub ImportWordTable() > On Error GoTo errHandler > Dim wordDoc As Object > Dim wdFileName As Variant > Dim noTble As Integer > Dim rowNb As Long > Dim colNb As Integer > Dim x As Long, y As Long > x = 1: y = 1 > wdFileName = Application.GetOpenFilename("Word files (*.docx),*.docx", > , _ > "Browse for file containing table to be imported") 'adjust this to the > document type you are after > If wdFileName = False Then Exit Sub > Set wordDoc = GetObject(wdFileName) > With wordDoc > noTble = wordDoc.tables.Count > If noTble = 0 Then > MsgBox "No Tables in this document", vbExclamation, "No Tables > to Import" > Exit Sub > End If > > > For k = 1 To noTble > With .tables(k) > For rowNb = 1 To .Rows.Count > For colNb = 1 To .Columns.Count > Cells(x, y) = WorksheetFunction.Clean(.cell(rowNb, > colNb).Range.Text) > y = y + 1 > Next colNb > y = 1 > x = x + 1 > Next rowNb > End With > x = x + 2 > Next > End With > Set wordDoc = Nothing > Exit Sub > errHandler: > MsgBox "Error in generating tables - " & Err.Number & " - " & > Err.Description > End Sub > > *MACRO 2 TO RUN ON ALL THE FOLDERS - this gives me runtime error as shown > below* > > Sub RunOnAllFolders() > Dim file > Dim path As String > Dim MyArray() > Dim N As Long > path = "C:\Test\" > file = Dir(path & "*.docx") > ReDim MyArray(0) > Do While file <> "" > If MyArray(0) = "" Then > MyArray(0) = file > Else > ReDim Preserve MyArray(UBound(MyArray) + 1) > MyArray(UBound(MyArray)) = file > End If > file = Dir() > Loop > For N = 0 To UBound(MyArray) > Documents.Open filename:=path & MyArray(N) *'<<runtime error 429 > ActiveX Component can't create Object >>* > > *Call ImportWordTable* > > ActiveDocument.Save > ActiveDocument.Close > file = Dir() > Next N > End Sub > Can the runtime error 429 be rectified from Macro 2 > > Any help would be appreciated. > Regards > Nasir Khan > > -- > Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s > =TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ > https://www.facebook.com/discussexcel > > FORUM RULES > > 1) Use concise, accurate thread titles. Poor thread titles, like Please > Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice > will not get quick attention or may not be answered. > 2) Don't post a question in the thread of another member. > 3) Don't post questions regarding breaking or bypassing any security > measure. > 4) Acknowledge the responses you receive, good or bad. > 5) Jobs posting is not allowed. > 6) Sharing copyrighted material and their links is not allowed. > > NOTE : Don't ever post confidential data in a workbook. Forum owners and > members are not responsible for any loss. > --- > You received this message because you are subscribed to the Google Groups > "MS EXCEL AND VBA MACROS" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to excel-macros+unsubscr...@googlegroups.com. > To post to this group, send email to excel-macros@googlegroups.com. > Visit this group at http://groups.google.com/group/excel-macros. > For more options, visit https://groups.google.com/groups/opt_out. > -- *Regards* * * *Ashish Koul* *Visit* *My Excel Blog <http://www.excelvbamacros.com/>* Like Us on Facebook<http://www.facebook.com/pages/Excel-VBA-Codes-Macros/151803898222297> Join Us on Facebook <http://www.facebook.com/groups/163491717053198/> P Before printing, think about the environment. -- Are you =EXP(E:RT) or =NOT(EXP(E:RT)) in Excel? And do you wanna be? It’s =TIME(2,DO:IT,N:OW) ! Join official Facebook page of this forum @ https://www.facebook.com/discussexcel FORUM RULES 1) Use concise, accurate thread titles. Poor thread titles, like Please Help, Urgent, Need Help, Formula Problem, Code Problem, and Need Advice will not get quick attention or may not be answered. 2) Don't post a question in the thread of another member. 3) Don't post questions regarding breaking or bypassing any security measure. 4) Acknowledge the responses you receive, good or bad. 5) Jobs posting is not allowed. 6) Sharing copyrighted material and their links is not allowed. NOTE : Don't ever post confidential data in a workbook. Forum owners and members are not responsible for any loss. --- You received this message because you are subscribed to the Google Groups "MS EXCEL AND VBA MACROS" group. To unsubscribe from this group and stop receiving emails from it, send an email to excel-macros+unsubscr...@googlegroups.com. To post to this group, send email to excel-macros@googlegroups.com. Visit this group at http://groups.google.com/group/excel-macros. For more options, visit https://groups.google.com/groups/opt_out.