Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #4  
Old 05-08-2016, 12:22 AM
gmayor's Avatar
gmayor gmayor is offline word vba Search files for string and save found filenames to new textfile Windows 10 word vba Search files for string and save found filenames to new textfile Office 2016
Expert
 
Join Date: Aug 2014
Posts: 4,144
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

Your original code seems to work for the example, though you have commented out one line that should remain. There will never be bold text in a text file. Text files don't support text formatting?

Code:
Sub Find_files_with_string_save_filenames()
    Application.ScreenUpdating = False
    Dim strFolder As String, strFile As String
    Dim wdDoc As Document
    Dim DestFileNum As Long
    Dim sDestFile As String

    strFolder = GetFolder
    If strFolder = "" Then Exit Sub
    strFile = Dir(strFolder & "\*.txt", vbNormal)
    sDestFile = strFolder & "\f9.txt"

    DestFileNum = FreeFile()
    Open sDestFile For Append As DestFileNum

    While strFile <> ""
        Set wdDoc = Documents.Open(Filename:=strFolder & "\" & strFile, AddToRecentFiles:=False, ReadOnly:=True, Visible:=False)
        With wdDoc
            Application.ScreenUpdating = False
            Selection.HomeKey Unit:=wdStory 'what does this do? It starts the search from the start of the document.
            With Selection.Find
                .ClearFormatting
                .Text = "first"
                .Forward = True
                .Wrap = wdFindContinue
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            If Selection.Find.Execute Then
                Print #DestFileNum, wdDoc.Name
            End If
            .Close SaveChanges:=False
        End With
        strFile = Dir()
    Wend
    Close #DestFileNum

    Set wdDoc = Nothing
    Application.ScreenUpdating = True
    MsgBox "Completed...", vbInformation
End Sub

Function GetFolder() As String
Dim oFolder As Object
    GetFolder = ""
    Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
    If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
    Set oFolder = Nothing
End Function
If you were working with document files rather than text files then

Code:
While strFile <> ""
        Set wdDoc = Documents.Open(Filename:=strFolder & "\" & strFile, AddToRecentFiles:=False, ReadOnly:=True, Visible:=False)
        With wdDoc
            Application.ScreenUpdating = False
            Selection.HomeKey Unit:=wdStory    'what does this do? It starts the search from the start of the document.
            With Selection.Find
                .ClearFormatting
                'find formatting
                .Font.Name = "Times New Roman"
                .Font.Bold = True
                .Font.Size = "12"
                
                .Text = "first"
                .Forward = True
                .Wrap = wdFindContinue
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
            End With
            If Selection.Find.Execute Then
                Print #DestFileNum, wdDoc.Name
            End If
            .Close SaveChanges:=False
        End With
        strFile = Dir()
    Wend
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote
 

Tags
vba word search



Similar Threads
Thread Thread Starter Forum Replies Last Post
VBA Word - Search Within Files Containing A String - Copy Files to New Folder jc491 Word VBA 0 01-09-2016 12:00 PM
word vba Search files for string and save found filenames to new textfile search for string, wherever found, at end of line, insert 8 <cr>s sbktex Word VBA 2 09-17-2014 04:09 PM
word vba Search files for string and save found filenames to new textfile Way to search for a string in text file, pull out everything until another string? omahadivision Excel Programming 12 11-23-2013 12:10 PM
word vba Search files for string and save found filenames to new textfile Macro to create new word doc and save the file using String found in the document VBNation Word VBA 2 02-08-2013 07:14 AM
word vba Search files for string and save found filenames to new textfile Bad view when using Find and Find & Replace - Word places found string on top line paulkaye Word 4 12-06-2011 11:05 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 10:41 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft