2015-02-16 4 views
0

У меня есть эта процедура, чтобы добавить «<OK>» для красного цвета элементов на списке, но раздвинуть элементы, которые являются последним из своих списковФункция, изменить текст в списках нажмите последний элемент из списка

Sub Rojo() 
    Dim lista As Integer 
    Dim para As Paragraph 

    For Each para In ActiveDocument.ListParagraphs 
     If para.Range.Font.ColorIndex = wdRed Then 
      para.Range.Text = "<OK> " + para.Range.Text 
     End If 
    Next para 

Условный у меня есть список:

  • черный текст
  • черный текст
  • Красный текст
  • Красный текст

становится:

  • черный текст
  • черный текст
  • <OK> Красный Текст

< Красный текст --This выталкивается из списка

Что такое shoudl Я делаю?

ответ

0

Adde this и элементы будут перечислены снова, но в новом списке. Теперь мне нужно будет вставить его в прежний список. (Hecho является глобальным булево)

 Sub Rojo() 

Dim p As Paragraph 

Dim iTotalParas As Integer, iParaCounter As Integer 
Comienzo: 
If hecho = False Then 
    iTotalParas = ActiveDocument.Paragraphs.Count 
    For iParaCounter = 1 To iTotalParas 
' For Each p In ActiveDocument.Paragraphs 

      Set p = ActiveDocument.Paragraphs(iParaCounter) 
      If p.Range.Font.ColorIndex = wdRed Then 
         'Mi cosecha 
         p.Range.Text = "<OK>" + p.Range.Text 
         If ActiveDocument.Paragraphs(iParaCounter).Range.ListFormat.ListType = 0 Then 
          ActiveDocument.Paragraphs(iParaCounter).Range.ListFormat.ApplyOutlineNumberDefault 

         End If 

      End If 

' Next p 
    Next iParaCounter 
    hecho = True 
    'Si ya la hemos ejecutado y volvemos a usarla, avisa antes y controlamos la repetición 
    Else 
     If MsgBox("Ya has ejecutado esta macro boniato!" & Chr(13) & "¿Quieres ejecutarla de nuevo?", vbYesNo, "User Input") = vbYes Then 
      hecho = False 
      GoTo Comienzo 
     Else 
      hecho = True 
     End If 
    End If 

End Sub 

EDITED ::::::::: ======== Хорошо, тем больше я с этим делать, тем больше я узнаю. Ionly пришлось изменить p.Range.Text = "" + p.Range.Text to p.Range.InsertBefore ("OK")

+0

Я все еще жду, чтобы кто-то мне помог, пожалуйста, XDDD –