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