如何在此“句子后双空格”代码中添加排除项?

时间:2016-06-27 16:30:40

标签: ms-word word-vba sentence

我希望以下代码更直观,因此我需要为“Dr.”等缩写添加排除项或“N.A.S.A.”。此外,它不应该为带小数点的数字添加空格。如何手动添加特定排除项或通配符排除项?

Sub TwoSpaces()
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
    .Text = "([.\?\!]) {1,}"
    .Replacement.Text = "\1  "
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub

我也不想将其应用于论文的某些部分,例如参考书目部分。我是否可以使用以下代码将宏标记为“不检查拼写和语法”的区域:

Selection.NoProofing = True

1 个答案:

答案 0 :(得分:0)

你的解决方案已经忽略了小数,因为它寻找一个他们不会拥有的单个空格,而对于参考书目,你可以随后更新该字段,并且添加的空格将消失。

留下'博士'之类的东西和'N.A.S.A。'

我认为不可能排除已经关闭打样的区域。相反,您是否尝试单步执行查找结果并检查每个结果?听起来你会有很多像这样的排除,我不认为修改搜索字符串将是处理它们的最佳方式。

以下是一些C#代码示例:

range.Find.MatchWildcards = true;
range.Find.Text = ([.\?\!]) {1,}";
while (range.Find.Execute())
{
    // check each find result: range.Text
}