首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Microsoft Word中的引号查找和替换

Microsoft Word中的引号查找和替换
EN

Stack Overflow用户
提问于 2019-03-22 23:13:11
回答 1查看 68关注 0票数 0

替换文本时,尝试获取不同类型的引号字符时似乎存在问题:

代码语言:javascript
复制
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 Office365 ProPlus”。

如果未激活文件->选项->校对->自动更正选项->键入时自动套用格式->键入时替换->使用“智能引号”替换“直引号”,则不会出现此问题。当然,我希望无论手动输入的任何设置如何,宏都能工作。

如何更改代码以获得预期的结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-26 00:57:17

解决这类问题的方法是在代码期间关闭该选项,如果该选项处于打开状态,则将其重新打开。

下面的代码片段保存用户的设置,关闭该选项,然后恢复用户的设置(无论该选项是打开还是关闭)。

代码语言:javascript
复制
Dim bReplaceQuotes as Boolean
'Save the user's setting
bReplaceQuotes = Options.AutoFormatAsYouTypeReplaceQuotes
Options.AutoFormatAsYouTypeReplaceQuotes = False
'Do the FindReplace
'Restore the user's settings at the end
Options.AutoFormatAsYouTypeReplaceQuotes = bReplaceQuotes
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55302691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档