【发布时间】:2019-08-13 14:55:32
【问题描述】:
在替换文本时尝试获取不同种类的引号字符时似乎存在问题:
With ActiveDocument.Content.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "\{QUOTE:(*):QUOTE\}"
.Replacement.Text = Chr(147) & "\1" & Chr(148)
.Forward = True
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.MatchWildcards = True
.Execute Replace:=wdReplaceAll
End With
当文档包含:{QUOTE:abc:QUOTE}
代码给出:“abc”
但预期的结果是:“abc”
Word 版本:“Microsoft Office Professional Plus 2013”和“Microsoft Office 365 ProPlus”。
当文件->选项->校对->自动更正选项->键入时自动套用格式->键入时替换->“直引号”与“智能引号”未激活时,问题不会发生。当然,无论手动输入的任何设置如何,我都希望宏能够正常工作。
如何更改代码以获得预期的结果?
【问题讨论】:
-
我无法重现您的问题 - 您使用的是哪个版本的 Word?
-
版本:“Microsoft Office Professional Plus 2013”和“Microsoft Office 365 ProPlus”。清除某个复选框时不会发生此问题;文件->选项->校对->自动更正选项->键入时自动套用格式->键入时替换->“直引号”为“智能引号”。当然,无论手动键入的任何设置如何,我都希望宏能够正常工作。现在我只清除复选框。它应该做的事情可以通过从“到”的常规自动更正条目来完成。