【问题标题】:Word-Scripting: replace nonbreaking spaces with thin spaces?文字脚本:用细空格替换不间断空格?
【发布时间】:2014-10-17 18:32:24
【问题描述】:

我用word打开(特殊)html文档进行打印,想写一个脚本来解决一个小问题:

在 html 文件中,我将“15 cm”之类的数字写成“15 cm”,因此数字“15”和单位“cm”之间不会有换行符。

我的问题是:间距太宽,尤其是当单词扩大空间以适应句子的边缘时。

因此,我想使用 word VBA 脚本将这些 替换为某种细空格。我想我需要列举段落,但我不确定如何替换其中的文本。这是我到目前为止想出的,但我不知道如何用word编写html nbsp以及用于细空间的内容,也许有人可以在这里帮助我?

Sub MakeThinSpaces()
Dim para As Paragraph
For Each para In ActiveDocument.Paragraphs
  replace the   with some   here?
Next
End Sub

【问题讨论】:

  • 薄空间根据定义是一个易碎的空间,所以你实际上可能会让事情变得更糟。

标签: vba ms-word


【解决方案1】:

细空间是 Unicode 8201。(狭窄的不间断空间是 8239)。 它应该使用选择对象与此代码一起使用。
^s 是受保护空间的通配符,您也可以使用 Chr(160)

Selection.WholeStory
With Selection.Find
    .Text = "^s"
    .Replacement.Text = ChrW(8201)
    .MatchWildcards = True
End With
Selection.Find.Execute Replace:=wdReplaceAll  

【讨论】:

  • 这看起来很完美!它仅适用于选定的文本吗?还是“Selection.WholeStory”选择全文?
  • 文档以某种方式被结构化为“部分”和“故事”,我并不完全深入。但是这里是的,主要文档正文是一个“故事”,并且该方法将其全部选中(不包括页眉/页脚和此类特殊区域)。
  • 太棒了!我的话既不破坏 8201 也不破坏 8239,这两者之间似乎没有区别。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-16
  • 2011-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多