VBA正则表达式单词无法检测新行上的文本

时间:2018-06-05 14:02:49

标签: regex vba ms-word word-vba

我正在尝试创建一个宏,它将改变我的成绩单中一个发言者所说的句子的字体样式。演讲者的名字是“Heading 2”风格,我想把面试官的行改为样式“Interviewer”,你可以从我的代码片段中看到。

我以前从未做过VBA或宏,所以这就是我在过去4-5小时内一起完成的。我真的需要这个才能工作,因为我有20个非常长的成绩单并且手动完成需要很长时间。

非常感谢您给予我的任何帮助。

我有一个宏来识别一个扬声器的名称但不能忽略它并在它下面做文本。我已经发布了我的代码和下面文档的截图。

Set regExp = New regExp
    Dim objMatch As Match
    Dim colMatches As MatchCollection
    Dim offsetStart As Long
    offsetStart = Selection.Start

    regExp.Pattern = "(Interviewer)([\r\n]+)"
    regExp.Global = True
    regExp.MultiLine = True

    Set colMatches = regExp.Execute(Selection.Text) 'Execute search.
    For Each objMatch In colMatches
        Debug.Print objMatch
        Set myRange = ActiveDocument.Range(objMatch.FirstIndex + offsetStart, End:=offsetStart + objMatch.FirstIndex + objMatch.Length)
        myRange.Style = ActiveDocument.Styles("Interviewer")
    Next

enter image description here

请求该文件的副本,所以我在网上发布了它: http://www.filedropper.com/stackoverflowexamplefile

如果需要上传到谷歌驱动器或其他东西,我可能会这样做

1 个答案:

答案 0 :(得分:0)

我通过使用python-docx创建一个简单的python脚本来解决这个问题。它遍历文档检查访问者的名字,然后只更改下一段的字体。它运作完美,正是我所需要的。

我要感谢所有帮助过我的人,非常感谢。我现在要考虑回答这个问题。如果有人想要python脚本,请发表评论并生病发布。