如何遍历文档并从预定义数组中查找单词,并用另一个数组中的单词替换每个单词

时间:2016-06-08 21:28:01

标签: arrays vba word-vba

我想循环word文档并从arrayOne中找到单词。

例如

arrayOne = ["john", "jack", "dog"]

和匹配的每个单词替换为arrayTwo中的单词

arrayTwo = ["ana", "tanja", "cat"]

1 个答案:

答案 0 :(得分:0)

您没有提供任何有问题的代码,因此没有什么可以解决的问题,但是您已经问过如何找到并替换它们'

以下是为实现此目的而需要编码的步骤: -

  1. 构建数组

    Dim AryFNR(1,2) As String
    AryFNR(0,0) = "john"
    AryFNR(1,0) = "ana"
    AryFNR(0,1) = "jack"
    AryFNR(1,1) = "tanja"
    ...
    
  2. 连接到文档

    Dim WdDoc As Document
    Set WdDoc = ThisDocument
        ...
    Set WdDoc = Nothing
    
  3. 连接到选择,确保它在连接的文档中

    Dim WdSlct As Selection
    WdDoc.Content.Select
    Set WdSlct = Selection
        WdSlct.SetRange 0, 0
        ....
    Set WdSlct = Nothing
    
  4. 连接到查找和替换并清除以前的设置

    Dim WdFnd As Find
    Set WdFnd = WdSlct.Find
        WdFnd.ClearAllFuzzyOptions
        WdFnd.ClearFormatting
        ...
    Set WdFnd = Nothing
    
  5. 在每个项目上使用WdFnd处理数组

    Dim LngCounter As Long
    For LngCounter = 0 To Ubound(AryFNR,2)
        With WdFnd
            .Execute FindText:=AryFNR(0, LngCounter), ReplaceWith:=AryFNR(1, LngCounter)
        End With
    Next
    
  6. 您需要注意的一些要点: -

    • 除非在脚注/尾注中进行选择,否则不会处理脚注和尾注。
    • 您要设置.Execute命令的额外值,具体取决于您对.Found的编码方式有用。

    这足以让您开始自己的代码来实现目标,享受!