首页 > 解决方案 > 如何使用 VBA 将文本添加到 Microsoft Word 中的空项目符号点?

问题描述

我正在尝试将文本添加到 Word 文档中的空格式项目符号点,但是我似乎找不到任何成功的方法。我不是很擅长 VBA,我只是用它来自动化重复发生的报告。

这是我一直用来查找和替换文本的 VBA subs 的格式,我只是找不到调整添加到项目符号点的方法:

Private Sub FixedReplacements()
Dim Rng As Range
Dim SearchString As String
Dim EndString As String
Dim Id As String
Dim Link As String

Set Rng = ActiveDocument.Range

    Rng.Find.ClearFormatting
    Rng.Find.Replacement.ClearFormatting
    With Rng.Find
        .Text = ""
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Rng.Find.Execute Replace:=wdReplaceAll

End Sub

我为空项目符号设定的目标是让他们按照“没有更多信息”的方式显示一些内容。<<只是一个例子。

标签: vbams-word

解决方案


如何做到这一点在很大程度上取决于子弹的插入方式。没有办法专门搜索子弹本身。有评论提到

项目符号点是直接从单词中找到的格式化项目符号点。

在这种情况下,默认设置是使用List Paragraph样式格式化段落。如果是这种情况,则Find可以在此处搜索使用该样式的段落。问题中的Find代码将如下所示。(还要注意对FormatWrap属性的更改。)

With Rng.Find
    .Text = "^p"
    .Replacement.Text = "No further information.^p"
    .Forward = True
    .Style = "List Paragraph"
    .Wrap = wdFindStop
    .Format = True
    .MatchCase = False
    .MatchWholeWord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With

如果已使用不同的样式来应用项目符号,则可以搜索该样式名称。请记住,样式名称区分大小写

文件/选项/高级,编辑选项部分中有一个选项:对项目符号或编号列表使用普通样式。如果这已被激活,那么事情将变得非常困难。最好的办法是尝试匹配应用的段落格式(缩进等)。


推荐阅读