VBA代码在Ms word中的粗体文本之前和之后添加asterik

时间:2017-06-10 03:18:31

标签: vba excel-vba ms-word word-vba excel

我在Ms字中有一个完整的段落,里面有几个BOld字母..我正在寻找任何vba代码,在每个粗体字母前后添加**并移到next ..直到每个粗体字母都被在之前和之后用双星号形成。

1 个答案:

答案 0 :(得分:0)

试试这个。它会在整个文档的每个粗体字母前后放置一组双星号:

Sub InsertAsteriks()
  Dim doc As Document
  Set doc = ActiveDocument

  Dim prev As Boolean: prev = False

  For i = doc.Range.Characters.Count - 1 To 1 Step -1
     If doc.Range.Characters(i).Bold Then
       doc.Range.Characters(i).InsertAfter "**"
       prev = True
     Else
       If prev Then
         doc.Range.Characters(i).InsertAfter "**"
         prev = False
       End If
     End If
  Next

  If prev Then
    doc.Range.Characters(1).InsertBefore "**"
  End If

End Sub

或者,如果您只希望对突出显示的文本执行此操作,则可以使用此操作:

Sub InsertAsteriks2()
  Dim prev As Boolean: prev = False

  With Selection
    For i = .Characters.Count - 1 To 1 Step -1
      If .Characters(i).Bold Then
        .Characters(i).InsertAfter "**"
        prev = True
      Else
        If prev Then
          .Characters(i).InsertAfter "**"
          prev = False
        End If
      End If
    Next

    If prev Then
      .InsertBefore "**"
    End If

  End With
End Sub
相关问题