vba - 在 Word 中每行末尾添加文本

标签 vba text ms-office ms-word

我试图从项目符号列表中删除当前样式,并将文本添加到每行的开头和结尾。到目前为止,InsertBefore 可以工作,但是要使用“InsertAfter”,我需要将插入点向左移动一个字母的空间,否则新文本将添加到下一行的开头(当前换行标记的右侧)。

Dim oPara As Word.Paragraph
With seletion
    For Each oPara In ActiveDocument.Paragraphs
        If oPara.Range.ListFormat.ListType = WdListType.wdListBullet Then
            oPara.Range.Select
            oPara.Range.Style = ActiveDocument.Styles(wdStyleNormal)
            oPara.Range.InsertBefore " * "
            oPara2.Range = .Range(oPara.Range.Start, oPara.Range.End - 1)
            oPara2.Range.InsertAfter "&&&"
        End If
    Next
End With

最佳答案

可能是这样的:

Dim oPara As Word.Paragraph
Dim rng As Range
For Each oPara In ActiveDocument.Paragraphs 'or Selection.Paragraphs
     Set rng = oPara.Range
     With rng
        If .ListFormat.ListType = WdListType.wdListBullet Then
           .Style = ActiveDocument.Styles(wdStyleNormal)
           .InsertBefore " * "
           .Collapse wdCollapseEnd
           .Move wdCharacter, -1
           .InsertAfter "&&&"
        End If
     End With
 Next

关于vba - 在 Word 中每行末尾添加文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21540789/

相关文章:

api - Microsoft Office Word对象模型中的SaveAs与SaveAs2

vba - SoapClient30 在窗口 7 64 位中给出错误

c# - 如何对齐 WPF 菜单项中的文本?

Python 文本文件到 xml

javascript - 如何将文本文件读取为数组

sql - Access 将行连接成单行 : extra conditions needed

vba - 使用MsgBox创建和提取名称变量的语法错误

excel - 代号为常数?

string - VBA在最后一个单词之后切割字符串总长度小于80个字符

vba - 在 Excel 2016 中运行 VBA 时出现 OLE 错误?