使用MS Word宏搜索文本文件

时间:2009-04-16 17:42:43

标签: vba word-vba

感谢我previous question提供的帮助。根据建议,我能够阅读Word文档中的文本行。然后,我可以继续解析该行以提取文件名。

我现在正尝试使用该文件名启动文件搜索。 有没有人对如何使用MS Word宏启动文本文件搜索有任何建议? 我需要找到该文件,打开它,然后在文本文件中搜索。

任何帮助将不胜感激。 谢谢!

2 个答案:

答案 0 :(得分:2)

要搜索,请使用Application.FileSearch:

FileSearch Object

阅读,使用FileSystemObject

从那里搜索应该是一个简单的InStr问题。

答案 1 :(得分:1)

如果您是从Word中执行此操作,最简单的方法是在Word中打开文本文件并使用Word的搜索功能。这样您就不需要实现自己的搜索功能了。

只需记录此操作的宏:在Word中打开文本文件并搜索特定字符串(Ctrl-F)。结果看起来像这样:

Sub Macro1()

    Documents.Open FileName:="YourFile.txt", ConfirmConversions:=False, _
        ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
        PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
        WritePasswordTemplate:="", Format:=wdOpenFormatAuto, XMLTransform:="", _
        Encoding:=1252

    Selection.Find.ClearFormatting

    With Selection.Find
        .Text = "YourSearchText"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With

    Selection.Find.Execute

    If Not Find Is Nothing Then
        ' your action here '
    End If
End Sub

然后,您可以编辑录制的宏以满足您的需求。

编辑:我看到我部分误解了你的问题。我的回答只涉及如何在文本文件中搜索特定字符串,而不是如何在文件系统中搜索文件列表。