使用VBA在文件夹中的所有文档中查找和替换MS Word文本

亚历克斯·H

我遇到了下面的代码,它们搜索一个打开的word文档,并在该文档的所有区域(StoryRanges)中执行查找和替换。它工作正常,但是我想问一下我如何修改此代码以查看选定文件夹中的所有文档,并对该文件夹中的所有文档执行查找和替换?而不只是打开的活动文档?

我的计划是将宏分配给Excel中的按钮,以便用户可以单击该宏,导航到该文件夹​​并执行查找并立即替换许多文档。

我是否可以修改“ IN ActiveDocument.StoryRanges”部分来查看文件夹?我不确定我可以将其修改为什么。顺便说一句...我是vba的新手,并尝试研究和学习...我非常感谢您的时间,耐心以及您在我尝试与之联系时所能提供的任何帮助-Alex。

昏暗的myStoryRange作为范围

    For Each myStoryRange In ActiveDocument.StoryRanges
    With myStoryRange.Find
        .Text = "Text to find to replace goes here"
        .Replacement.Text = "And the replacement text goes here"
        .Wrap = wdFindContinue
        .Execute Replace:=wdReplaceAll
    End With
    Do While Not (myStoryRange.NextStoryRange Is Nothing)
        Set myStoryRange = myStoryRange.NextStoryRange
        With myStoryRange.Find
            .Text = "Text to find to replace goes here"
            .Replacement.Text = "And the replacement text goes here"
            .Wrap = wdFindContinue
            .Execute Replace:=wdReplaceAll
        End With
    Loop
Next myStoryRange
悉达思·劳特

我已经注释了该代码,因此您在理解它时应该没有任何问题。即使如此,我也知道...

'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'
' This code uses Late Binding to connect to word and hence you '
' you don't need to add any references to it                   '
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~'

Option Explicit

'~~> Defining Word Constants
Const wdFindContinue As Long = 1
Const wdReplaceAll As Long = 2

Sub Sample()
    Dim oWordApp As Object, oWordDoc As Object, rngStory as Object
    Dim sFolder As String, strFilePattern As String
    Dim strFileName As String, sFileName As String

    '~~> Change this to the folder which has the files
    sFolder = "C:\Temp\"
    '~~> This is the extention you want to go in for
    strFilePattern = "*.docx"

    '~~> Establish an Word application object
    On Error Resume Next
    Set oWordApp = GetObject(, "Word.Application")

    If Err.Number <> 0 Then
        Set oWordApp = CreateObject("Word.Application")
    End If
    Err.Clear
    On Error GoTo 0

    oWordApp.Visible = True

    '~~> Loop through the folder to get the word files
    strFileName = Dir$(sFolder & strFilePattern)
    Do Until strFileName = ""
        sFileName = sFolder & strFileName

        '~~> Open the word doc
        Set oWordDoc = oWordApp.Documents.Open(sFileName)

        '~~> Do Find and Replace
        For Each rngStory In oWordDoc.StoryRanges
            With rngStory.Find
                .Text = "Text to find to replace goes here"
                .Replacement.Text = "And the replacement text goes here"
                .Wrap = wdFindContinue
                .Execute Replace:=wdReplaceAll
            End With
        Next

        '~~> Close the file after saving
        oWordDoc.Close SaveChanges:=True

        '~~> Find next file
        strFileName = Dir$()
    Loop

    '~~> Quit and clean up
    oWordApp.Quit

    Set oWordDoc = Nothing
    Set oWordApp = Nothing
End Sub

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA宏,使用输出文本文件查找和替换Word文档中的文本

来自分类Dev

替换子文件夹VBA中文档中的文本

来自分类Dev

如何替换文件夹中Word文档中所有出现的字符串

来自分类Dev

Word宏查找并用文本框替换Word文档中的所有内容

来自分类Dev

Vba替换word文档中的某些文本?

来自分类Dev

在文件夹中的多个文本文件中查找和替换

来自分类Dev

如何使用geany查找和替换所有打开的文件中的文本?

来自分类Dev

如何从Thunderbird文件夹中的所有邮件创建Word文档?

来自分类Dev

使用MS Word VBA如何使用突出显示颜色的值查找和替换突出显示的文本

来自分类Dev

MS Word宏替换列表中的文本

来自分类Dev

访问VBA-查找和替换换行符的文本在我的Word文档中返回奇怪的块

来自分类Dev

如何在不更改下面一行的样式的情况下查找和替换MS Word 2013中具有样式的所有文本

来自分类Dev

Word宏查找并用文本框替换所有Word文档

来自分类Dev

Excel VBA将特定文件夹中的所有Word文件转换为PDF

来自分类Dev

在Word模板(VBA)中从关闭的Word文档中检索文本

来自分类Dev

使用C#合并文件夹中的Word文档

来自分类Dev

列表框中的所有文本到 MS Word 文档中的特定位置

来自分类Dev

使用VBScript用Hyperlinks替换Word文档中的文本

来自分类Dev

批量查找和复制文本列表中的文件夹

来自分类Dev

使用C#在Word文档中查找特殊文本

来自分类Dev

在Word 2013中查找和删除文本

来自分类Dev

使用文件夹名称在所有文件夹中创建空文本文件

来自分类Dev

如何使用VBA从Word文档中的形状中提取文本?

来自分类Dev

VBA Word:在Word文档中找到的文本之前插入文本

来自分类Dev

查找和替换文档中的文本

来自分类Dev

如何使用Python脚本修改文件夹中的所有文本文件

来自分类Dev

查找文本并替换文本excel word vba

来自分类Dev

Python文件IO和zipfile。尝试遍历文件夹中的所有文件,然后使用Python遍历各个文件中的文本

来自分类Dev

Python文件IO和zipfile。尝试遍历文件夹中的所有文件,然后使用Python遍历各个文件中的文本

Related 相关文章

  1. 1

    Excel VBA宏,使用输出文本文件查找和替换Word文档中的文本

  2. 2

    替换子文件夹VBA中文档中的文本

  3. 3

    如何替换文件夹中Word文档中所有出现的字符串

  4. 4

    Word宏查找并用文本框替换Word文档中的所有内容

  5. 5

    Vba替换word文档中的某些文本?

  6. 6

    在文件夹中的多个文本文件中查找和替换

  7. 7

    如何使用geany查找和替换所有打开的文件中的文本?

  8. 8

    如何从Thunderbird文件夹中的所有邮件创建Word文档?

  9. 9

    使用MS Word VBA如何使用突出显示颜色的值查找和替换突出显示的文本

  10. 10

    MS Word宏替换列表中的文本

  11. 11

    访问VBA-查找和替换换行符的文本在我的Word文档中返回奇怪的块

  12. 12

    如何在不更改下面一行的样式的情况下查找和替换MS Word 2013中具有样式的所有文本

  13. 13

    Word宏查找并用文本框替换所有Word文档

  14. 14

    Excel VBA将特定文件夹中的所有Word文件转换为PDF

  15. 15

    在Word模板(VBA)中从关闭的Word文档中检索文本

  16. 16

    使用C#合并文件夹中的Word文档

  17. 17

    列表框中的所有文本到 MS Word 文档中的特定位置

  18. 18

    使用VBScript用Hyperlinks替换Word文档中的文本

  19. 19

    批量查找和复制文本列表中的文件夹

  20. 20

    使用C#在Word文档中查找特殊文本

  21. 21

    在Word 2013中查找和删除文本

  22. 22

    使用文件夹名称在所有文件夹中创建空文本文件

  23. 23

    如何使用VBA从Word文档中的形状中提取文本?

  24. 24

    VBA Word:在Word文档中找到的文本之前插入文本

  25. 25

    查找和替换文档中的文本

  26. 26

    如何使用Python脚本修改文件夹中的所有文本文件

  27. 27

    查找文本并替换文本excel word vba

  28. 28

    Python文件IO和zipfile。尝试遍历文件夹中的所有文件,然后使用Python遍历各个文件中的文本

  29. 29

    Python文件IO和zipfile。尝试遍历文件夹中的所有文件,然后使用Python遍历各个文件中的文本

热门标签

归档