2014-02-04 3 views
1

Я пытаюсь удалить текущий стиль из списков маркеров и добавить текст как к началу, так и к концу каждой строки. До сих пор работает InsertBefore, но для использования «InsertAfter» мне нужно переместить точку вставки влево для однобуквенного пространства, иначе новый текст будет добавлен в начало следующей строки (справа от текущей метки разрыва строки).Добавление текста в конец каждой строки в Word

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 

ответ

3

Что-то вроде этого, может быть:

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 
+0

* 1 &&& * 1 &&& * 1 &&& * 1 &&& * 1 &&& * &&& 1 он работает на последней – KuN

+1

я забыл упомянуть, что кроме. Я думал, что ты, возможно, сможешь понять эту часть. –

Смежные вопросы