【问题标题】:Non breaking space between date elements word vba日期元素 word vba 之间的非中断空格
【发布时间】:2020-04-14 23:52:30
【问题描述】:

我正在努力确保日期保持一致并且不会跨界。

替换文本应该有两个不间断的空格,一个在 \1 April 之间,一个在 April \2 之间。

Sub SarahDates()
‘ Supposed to put a non breaking space between day, month and year.
    Selection.Find.ClearFormatting
    Selection.Find.Replacement.ClearFormatting
    With Selection.Find
        .Text = “([0-9]) April ([0-9])”
        .Replacement.Text = “\1 April \2”
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = True
    End With
    Selection.Find.Execute Replace:=wdReplaceAll
End Sub

.Replacement.Text 中的正确文本是什么,以便在宏中显示不间断空格。

【问题讨论】:

  • 问题是什么?有什么不顺利吗?

标签: vba ms-word


【解决方案1】:

以下宏将一次性重新格式化所有日期。

Sub SarahDates()
Application.ScreenUpdating = False
With ActiveDocument.Range.Find
  .ClearFormatting
  .Replacement.ClearFormatting
  .Text = "(<[0-9]{1,2}) ([JFMASOND][abceghilmnoprstuvy]{2,8}) ([12][0-9]{3}>)"
  .Replacement.Text = "\1^s\2^s\3"
  .Forward = True
  .Format = False
  .Wrap = wdFindContinue
  .MatchWildcards = True
  .Execute Replace:=wdReplaceAll
End With
Application.ScreenUpdating = True
End Sub

【讨论】:

  • 请解释您的代码如何在其格式化的日期中包含不间断空格。
  • 查看 .Replacement.Text 表达式。 ^s 表示不间断的空格。
  • 请使用edit 链接将附加信息纳入答案本身。对 Stack Overflow 的评论是“短暂的”——它们往往会随着时间的推移而消失。对代码 *within *an answer 的解释总是受到阅读它的每个人的赞赏。
  • 我不会认为有必要解释任何人都可以通过 Word 的查找/替换对话框自己找到的标准查找/替换表达式。坦率地说,Find 表达式比较晦涩 - 我也不建议为此添加半页评论。
猜你喜欢
  • 2011-03-31
  • 2021-01-16
  • 1970-01-01
  • 1970-01-01
  • 2010-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多