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.
- 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.
- Inutilement fait le code compliqué en ajoutant des sous-marins ensemble.
- 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
- Je pris l'ajout inutile sous et formaté sous pour que mes déclarations alignés avec l'énoncé final. (solution facile)
- 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" - 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
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