2014-05-14 1 views
-1

J'ai un document avec une liste dans le format de la liste. J'ai essayé de combiner deux sous-marins comme vous pouvez le dire en changebullet avec findbullet. J'essaye d'obtenir findbullet pour faire défiler le document et aller à une nouvelle liste dans l'index de liste. J'essaie alors d'utiliser changebullet pour faire défiler les instructions if pour voir si une chaîne existe dans le contentcontrol (j'ai débattu en utilisant Selectcase). L'idée est de sélectionner un élément dans la liste déroulante du contrôle de contenu (dans ce cas ContentControls (1)), puis de cliquer sur un bouton de commande pour déclencher Changebullet. Vous pouvez voir ma liste à puces qui tente d'être entré dans le code. Avec tout le mumbo jumbo en haut de changebullet il génère une liste très bien dans le style de police "symbole". Il ne suffit pas d'ajouter les balles à la liste, il ne maintient pas la police du texte comme "Times New Roman" il tout change en symbole (seules les balles doivent être symbole).Je reçois une erreur de compilation mais je pense que j'ai toutes les pièces

Je rencontre des erreurs de compilation concernant des instructions déjà utilisées ou une erreur où End with est introuvable ou end if est introuvable. MISE À JOUR/MODIFIER: J'ai effectué quelques itérations et résolu mes problèmes. Voici la liste des erreurs, puis la liste des correctifs.

  1. A commencé à compiler des erreurs avec les suggestions de @EventHandler J'ai été en mesure de corriger le code. (Il a contribué à mettre en retrait tout en VBA correctement que je puisse voir les problèmes.
  2. Inutilement fait le code compliqué en ajoutant des sous-marins ensemble.
  3. Ensuite, le programme ne serait pas le cycle en ajoutant correctement une liste sans balles uniquement là où le curseur est en cours d'exécution de la macro.

Pour résoudre les problèmes

  1. Je pris l'ajout inutile sous et formaté sous pour que mes déclarations alignés avec l'énoncé final. (solution facile)
  2. Ajouté la ligne ActiveDocument.Lists(1).Range.Select cela a permis à la macro d'interagir uniquement avec la liste que j'essayais de manipuler "Liste 1"
  3. Pour résoudre les problèmes bullet (ie. ne s'affiche pas après avoir entré le texte. J'ai mis ContinuePreviousList:=True Ceci a permis à l'insertion de texte d'afficher des balles et a gardé la liste 1.

Choses que j'ai enlevées de ce miss hap. Obtenez la macro soit pour sélectionner la section avec laquelle je souhaite interagir ou pour déplacer le curseur là où je veux interagir avec le document. Pour éviter que l'index de la liste ne se brise et pour ajouter/ajuster la liste à puces, faites en sorte que la liste précédente soit égale à true.

)

Sub changebullets() 
Dim oPara As Word.Paragraph 
Dim i As Long 
Dim HCE As Long 
Dim CntCtrl As Variant 

CntCtrl = ActiveDocument.ContentControls(1).Range.Text 
HCE = ActiveDocument.Lists.Count 
With Selection 
    If InStr(ActiveDocument.ContentControls(1).Range.Text, "DropDownItem1") Then 
     ActiveDocument.Lists(1).Range.Select 
     ListGalleries(wdBulletGallery).ListTemplates(1).Name = "" 
     Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=True, ApplyTo:=wdListApplyToSelection, DefaultListBehavior:=wdWord10ListBehavior 
      With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1) 
       .NumberFormat = ChrW(61623) 
       .TrailingCharacter = wdTrailingTab 
       .NumberStyle = wdListNumberStyleBullet 
       .NumberPosition = InchesToPoints(0.25) 
       .Alignment = wdListLevelAlignLeft 
       .TextPosition = InchesToPoints(0.25) 
       .TabPosition = wdUndefined 
       .ResetOnHigher = 0 
       .StartAt = 1 
        With .Font 
         .Size = 8 
         .Name = "Symbol" 
        End With 
       .LinkedStyle = "" 
      End With 
     Selection.Font.Name = "Times New Roman" 
     Selection.TypeText Text:="Hello does it work yet?" 
     Selection.TypeParagraph 
     Selection.TypeText Text:="New Bullet Mother Trucker." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Second Bullet Mother Trucker." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Third Bullet Mother Trucker." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Fourth Bullet Mother Trucker." 
    End If 
    If InStr(ActiveDocument.ContentControls(1).Range.Text, "DropDownItem2") Then 
     ActiveDocument.Lists(1).Range.Select 
     ListGalleries(wdBulletGallery).ListTemplates(1).Name = "" 
     Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=True, ApplyTo:=wdListApplyToSelection, DefaultListBehavior:=wdWord10ListBehavior 
      With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1) 
       .NumberFormat = ChrW(61623) 
       .TrailingCharacter = wdTrailingTab 
       .NumberStyle = wdListNumberStyleBullet 
       .NumberPosition = InchesToPoints(0.25) 
       .Alignment = wdListLevelAlignLeft 
       .TextPosition = InchesToPoints(0.5) 
       .TabPosition = wdUndefined 
       .ResetOnHigher = 0 
       .StartAt = 1 
        With .Font 
         .Size = 8 
         .Animation = wdUndefined 
         .DoubleStrikeThrough = wdUndefined 
         .Name = "Symbol" 
        End With 
       .LinkedStyle = "" 
      End With 
     Selection.Font.Name = "Times New Roman" 
     Selection.TypeText Text:="Xtina is a well dressed Environmental Scientist." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Micah has King Ranch Chicken that he'd like to eat." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Where you ever in college." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Josh is a Madman and he has Tattoos." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Fourth Bullet Mother Trucker." 

    End If 
    If InStr(ActiveDocument.ContentControls(1).Range.Text, "DropDownItem3") Then 
     ActiveDocument.Lists(1).Range.Select 
     ListGalleries(wdBulletGallery).ListTemplates(1).Name = "" 
     Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=True, ApplyTo:=wdListApplyToSelection, DefaultListBehavior:=wdWord10ListBehavior 
      With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1) 
       .NumberFormat = ChrW(61623) 
       .TrailingCharacter = wdTrailingTab 
       .NumberStyle = wdListNumberStyleBullet 
       .NumberPosition = InchesToPoints(0.25) 
       .Alignment = wdListLevelAlignLeft 
       .TextPosition = InchesToPoints(0.5) 
       .TabPosition = wdUndefined 
       .ResetOnHigher = 0 
       .StartAt = 1 
        With .Font 
         .Size = 8 
         .Animation = wdUndefined 
         .DoubleStrikeThrough = wdUndefined 
         .Name = "Symbol" 
        End With 
       .LinkedStyle = "" 
      End With 
     Selection.Font.Name = "Times New Roman" 
     Selection.TypeText Text:="Dick Whitmen." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Wagner." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Gesting." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Jasmin." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Fourth Bullet Mother Trucker." 

    End If 
    If InStr(ActiveDocument.ContentControls(1).Range.Text, "DropDownItem4") Then 
     ActiveDocument.Lists(1).Range.Select 
     ListGalleries(wdBulletGallery).ListTemplates(1).Name = "" 
     Selection.Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:=ListGalleries(wdBulletGallery).ListTemplates(1), ContinuePreviousList:=True, ApplyTo:=wdListApplyToSelection, DefaultListBehavior:=wdWord10ListBehavior 
      With ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1) 
       .NumberFormat = ChrW(61623) 
       .TrailingCharacter = wdTrailingTab 
       .NumberStyle = wdListNumberStyleBullet 
       .NumberPosition = InchesToPoints(0.25) 
       .Alignment = wdListLevelAlignLeft 
       .TextPosition = InchesToPoints(0.5) 
       .TabPosition = wdUndefined 
       .ResetOnHigher = 0 
       .StartAt = 1 
        With .Font 
         .Size = 8 
         .Name = "Symbol" 
        End With 
       .LinkedStyle = "" 
      End With 
     Selection.Font.Name = "Times New Roman" 
     Selection.TypeText Text:="Ready Mix." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Dump Trucks doing Stuff." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Mad men is a crazy show." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="The IBM computer was installed." 
     Selection.TypeParagraph 
     Selection.TypeText Text:="Stubblefield Coddington Whinchell 3rd." 

    End If 
End With 

End Sub 
+0

Mods s'il vous plaît ne hésitez pas à supprimer si vous ne pensez pas c'est digne. @eventHandler m'a aidé à passer à travers d'autres itérations du code ci-dessus.Toujours cassé mais je le repasserai si j'obtiens une solution de travail ou quelque chose qui est plus proche d'être correct. – Ravenous

Répondre

3

il y a un for each vous ne pas finir

If InStr(ActiveDocument.ContentControls(1).Range.Text, "ISWPPP") Then 


    For Each oPara In ActiveDocument.ListParagraphs 

et à la fin de tous les

End If 
Next oPara 
+0

Merci pour l'info une fois que j'ai passé cette erreur de compilation, j'ai pu travailler à travers le problème que j'ai re-posté mon code ammended. – Ravenous

Questions connexes