Как заменить двойные кавычки в Microsoft WORD, используя C# - PullRequest
1 голос
/ 23 марта 2020

После успешно заменяет Apple на Mango в WORD документе, если в нем есть слово Apple:

myDocRange.Find.Execute(FindText: "Apple", Format: false, ReplaceWith: "Mango", MatchWildcards: true, Replace: Word.WdReplace.wdReplaceAll);

Но если в документе есть двойная кавычка ", и вы хотите заменить его на TEST, следующее ничего не делает:

myDocRange.Find.Execute(FindText: "\"", Format: false, ReplaceWith: "TEST", MatchWildcards: true, Replace: Word.WdReplace.wdReplaceAll);

Примечание : Вместо использования "\"", если я использую """" или @""", я получаю синтаксическая ошибка.

Однако в VBA действуют следующие. Но мне нужно, чтобы он работал в C#:

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = """"
    .Replacement.Text = "TEST"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll

1 Ответ

1 голос
/ 23 марта 2020

Используйте коды символов для поиска специальных символов в соответствии с MSDN :

FindText:

Вы можете искать специальные символы указав соответствующие коды символов. Например, «^ p» соответствует метке абзаца, а «^ t» соответствует символу табуляции.

Так что вам нужно использовать ^34 для ":

myDocRange.Find.Execute(FindText: "^34", Format: false, ReplaceWith: "TEST", MatchWildcards: true, Replace: Word.WdReplace.wdReplaceAll);
...