【问题标题】:Replace highlight words in microsoft word using VBA使用 VBA 替换 microsoft word 中的突出显示词
【发布时间】:2012-01-26 05:16:58
【问题描述】:

我需要遍历整个 word 文档并读取突出显示的文本,以便我可以在我的 XML 文件中搜索突出显示的内容并将其替换为 XML 文件中的对应值。
我已经弄清楚如何将我的 XML 文件解析为 DOM 并搜索我需要的值。
我仍然对 VBA 代码进行排序以循环遍历整个 word 文档并读取突出显示文本的内容,以便我可以与我的 xml 文件进行比较。

【问题讨论】:

    标签: xml vba highlight ms-word


    【解决方案1】:

    这是适合您的完美解决方案。我已经编写了这个宏代码并进行了测试。 http://blog.haneefputtur.com/2012/02/macro-to-extract-highlighted-words-from.html

    【讨论】:

    • 欢迎来到 Stack Overflow!您不应该只提供指向另一个站点的链接作为答案,因为该站点将来可能会过时。相反,请单击此答案上的“编辑”链接,并在此处包含该页面中解决方案的基本部分。见:meta.stackexchange.com/q/8259
    【解决方案2】:

    您将需要遍历 word 文档中的所有单词并检查每个单词是否突出显示。
    当您找到一个突出显示的单词时,然后使用您已经必须查看 XML 中的单词列表的代码来获取文档中所选单词的替换和副词。

    这是一个快速示例。

    Sub GetHighlightedWords()
      Dim doc As Document
      Set doc = ActiveDocument
      Dim SelectedWord As String
    
      For i = 1 To doc.Range.Words.Count
        If doc.Range.Words(i).HighlightColorIndex > 0 Then
            SelectedWord = doc.Range.Words(i)
            'This is where you would go to your XML document and pickup a replacement word and subtitude it for the selected word.'
            Debug.Print SelectedWord 
        End If
      Next
    
    End Sub
    

    【讨论】:

    • 感谢示例代码!我注意到的是它一次只捕获一个单词。如何逐个连接突出显示的阶段。
    • 如果这不可行,也许我可以用左括号和右括号替换高亮。在这种情况下,我如何在左括号内搜索和连接单词
    • 您只需要检查连续的单词是否突出显示并在变量中跟踪它。然后,您可以使用此变量来确定前一个单词是否在循环中突出显示。不需要额外的标签。
    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 2018-10-03
    相关资源
    最近更新 更多