如何使用C#替换Microsoft WORD中的双引号

问题描述 投票:1回答:1

如果文档中的单词为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
c# ms-word vsto office-interop
1个回答
1
投票

根据MSDN,使用字符代码查找特殊字符:

FindText:

您可以通过指定适当的字符代码。例如,“ ^ p”对应于一个段落标记,“ ^ t”对应于制表符。

因此您需要将^34用于"

myDocRange.Find.Execute(FindText: "^34", Format: false, ReplaceWith: "TEST", MatchWildcards: true, Replace: Word.WdReplace.wdReplaceAll);
© www.soinside.com 2019 - 2024. All rights reserved.