Слово регулярного выражения VBA не может обнаружить текст в новой строке - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь создать макрос, который изменит стиль шрифта предложений, произнесенных одним из ораторов в моих стенограммах.Имена докладчиков имеют стиль «Заголовок 2», и я хочу изменить строки интервьюеров на стиль «Интервьюер», как вы, вероятно, можете видеть из моего фрагмента кода.

Я никогда раньше не делал 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 голосов
/ 05 июня 2018

Я решил эту проблему, создав простой скрипт на python с использованием python-docx.Он просматривает документ, проверяя имя интервьюера, а затем просто меняет шрифт следующего абзаца.Он отлично работает, делает именно то, что мне нужно.

Я хотел бы поблагодарить всех, кто мне помог, это было очень высоко оценено.Я собираюсь рассмотреть этот вопрос ответили сейчас.Если кому-то понравится скрипт на python, оставьте комментарий и постите его.

...