![]() |
|
![]() |
|
Thread Tools | Display Modes |
|
#1
|
||||
|
||||
![]()
For example:
Code:
Sub GetDocumentStats() Application.ScreenUpdating = False Dim strFolder As String, strFile As String, strDocNm As String Dim strList As String, i As Long, wdDoc As Document strDocNm = ActiveDocument.FullName: strFolder = "C:\Sam-Documents\VBA-Word" strFile = Dir(strFolder & "\*.docx", vbNormal) While strFile <> "" If strFolder & "\" & strFile <> strDocNm Then i = i + 1 Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False) With wdDoc With .Range.Find .Text = strFnd .MatchCase = False .MatchAllWordForms = False .MatchWholeWord = False .Execute If .Found = True Then strList = strList & vbCr & strFile End With .Close SaveChanges:=False End With End If ' Let Word do its housekeeping DoEvents strFile = Dir() Wend Set wdDoc = Nothing MsgBox i & " files processed." & vbCr & "Matches with " & strFnd & " found in:" & strList, vbOKOnly Application.ScreenUpdating = True End Sub
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#2
|
|||
|
|||
![]()
Macropod
Indeed that was the perfect shot to work in Word Macro file. Thank you so much. I tried the same to operate from MS-Excel VBA. But some how Files did not appear on the Rows. Below is the Code executed from Excel to display the files on the worksheet rows You may check the syntax at the end of the code which is in bold Code:
Option Explicit Public FSO As Object 'a FileSystemObject Public oFolder As Object 'the folder object Public oSubFolder As Object 'the subfolders collection Public oFiles As Object 'the files object Dim i As Long, strNm As String, strFnd As String, strFile As String, strList As String Sub FindTextInDocs() ' Minimise screen flickering Dim wks As Worksheet Set wks = Worksheets("sheet1") Dim rowindex As Long rowindex = 3 wks.Range("B1").Value = i & " Files Processed." wks.Range("C1").Value = "Matches with " & strFnd wks.Range("B2").Value = "Found in" On Error Resume Next Set wdApp = GetObject("word.Application") If Err Then Set wdApp = CreateObject("word.Application") End If Set wdDoc = wdApp.Documents.Add Application.ScreenUpdating = False Dim strFolder As String strFolder = "" strDocNm = wdApp.ActiveDocument.FullName strFolder = "C:\Characters-Folder\Word-Files\" strFile = Dir(strFolder & "\*.docx", vbNormal) strFnd = txtFindText.Text While strFile <> "" If strFolder & "\" & strFile <> strDocNm Then i = i + 1 Set wdDoc = wdApp.Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False) With wdDoc With .Range.Find .Text = strFnd .MatchCase = False .MatchAllWordForms = False .MatchWholeWord = False .Execute If .Found = True Then strList = strList & vbCr & strFile End With .Close SaveChanges:=False End With End If ' Let Word do its housekeeping DoEvents strFile = Dir() 'wks.Cells(rowindex, 2).Formula = strList 'rowindex = rowindex + 1 Wend Set wdDoc = Nothing ''''''MsgBox i & " files processed." & vbCr & "Matches with " & strFnd & " found in:" & strList, vbOKOnly 'wks.Range("B3").Value = strFile & vbCr 'strList & vbCr Application.ScreenUpdating = True End Sub |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
![]() |
ksor | Word VBA | 1 | 10-12-2019 08:33 PM |
Formula for searching names in one go | SilverChat | Excel | 2 | 05-07-2018 06:11 PM |
![]() |
sg11 | Word VBA | 4 | 03-22-2018 04:25 AM |
![]() |
staicumihai | Word VBA | 14 | 11-15-2016 01:42 AM |
![]() |
jc491 | Word VBA | 8 | 09-11-2015 08:31 AM |