【问题标题】:MS Word Script to select text by numberingMS Word Script 通过编号选择文本
【发布时间】:2013-12-11 23:44:15
【问题描述】:

我正在寻找一种快速自动修复 Word 文档中的标题的方法。 我在 Stackoverflow 上花了一些时间寻找 VB 脚本,并尝试使用 Word 中的高级查找和替换功能。

标题的深度最多为 5 级。

2.0 这应该是标题 1

2.1 这应该是标题 2

2.1.1 这应该是标题 3

2.1.1.1 这应该是标题 4

2.1.1.1.1 这应该是标题 5

每个标题之间都有大量文字。

标题是键入的,而不是使用“样式”格式化的。

所有标题都是Times New Roman,粗体,12pt

我想浏览文档并使用适当级别的标题样式修复所有标题。

看起来很简单。我根据字体进行了查找/替换;但是我无法区分不同的级别。

任何帮助将不胜感激。

【问题讨论】:

    标签: vba ms-word


    【解决方案1】:

    听起来您需要进行通配符搜索。我首先要说 Word 的通配符搜索不像其他正则表达式引擎那样复杂,除非您非常确信这些标题字符串在文本中是唯一的,否则我至少会手动运行这些开始。


    Search:
    Font: Times New Roman Bold 12 pt
    Wildcards on
    [0-9]{1,}.[0-9]{1,}.[0-9]{1,}.[0-9]{1,}.[0-9]{1,}
    
    Replace:
    Style: Heading 5
    

    Then
    Search:
    Font: Times New Roman Bold 12 pt
    Wildcards on
    [0-9]{1,}.[0-9]{1,}.[0-9]{1,}.[0-9]{1,}
    
    Replace:
    Style: Heading 4
    

    Then
    Search:
    Font: Times New Roman Bold 12 pt
    Wildcards on
    [0-9]{1,}.[0-9]{1,}.[0-9]{1,}
    
    Replace:
    Style: Heading 3
    

    Then
    Search:
    Font: Times New Roman Bold 12 pt
    Wildcards on
    [0-9]{1,}.[1-9]{1,}
    
    Replace:
    Style: Heading 2
    

    Then
    Search:
    Font: Times New Roman Bold 12 pt
    Wildcards on
    [0-9]{1,}.0
    
    Replace:
    Style: Heading 1
    

    我强烈建议至少手动进行最后两次搜索,因为可能存在与文本中的这些模式匹配的其他粗体文本实例。

    如果你想要一个脚本,你可以把它录制成一个宏,但如果只有一个文档,那就真的没必要了。

    这不是一个真正的编码问题;不确定是否应该移至超级用户。

    【讨论】:

    • 感谢您的帮助。我认为这不仅仅是查找和替换。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多