0
votes

Recherche de 12 chaînes séparées avec une seule fonction

J'ai une macro qui recherche une chaîne ("janvier") et convertit l'espace vers un espace protégé. Ce que j'aimerais faire est de rechercher les autres mois de l'année aussi. Existe-t-il une façon de rechercher les autres mois dans la même fonction, plutôt que de copier et collez mon code 11 fois, recherchant un mois différent à chaque fois?

Voici mon code jusqu'à présent après quelques suggestions qui ont principalement travaillé Mais pas tout à fait et que je ne peux pas comprendre pourquoi: P>

Dim item As Variant
Dim months(1 To 12) As String
Dim str As String

    months(1) = "January ": months(2) = "February ": months(3) = "March ": months(4) = "April ": months(5) = "May ": months(6) = "June ": months(7) = "July ": months(8) = "August ": months(9) = "September ": months(10) = "October ": months(11) = "November ": months(12) = "December "

    For Each item In months
        Selection.Find.Execute item
        Do Until Selection.Find.Found = False
            Selection.MoveRight.Unit:=wdCharacter, Count:=1
            Selection.TypeBackspace
            Selection.TypeText Text:=" "
            Selection.Find.Execute
        Loop
    Next
End Sub


2 commentaires

Qu'entendez-vous par «espace protégé»? Un espace non-casseur?


Oui (Ctrl + Maj + espace). Nous les appelons des espaces protégés sur mon lieu de travail, désolé


3 Réponses :


1
votes

Je n'ai pas été capable de faire votre code posté faire quoi que ce soit. Veuillez tester le code ci-dessous pour voir si cela fait ce dont vous avez besoin: xxx

à l'aide de la plage objet à la place de la sélection fait plus vite, Code plus fiable.


2 commentaires

Merci de votre suggestion, mais je ne veux pas remplacer le mois avec un espace, je souhaite remplacer l'espace normal suivant le mois avec un espace protégé, j'ai donc changé le ".replacement.text" - ". Exécuter" à Sélection.Couverance une fois, typebackspace une fois, typeText "" et exécutez, en utilisant la sélection, car elle n'aimait pas quand j'ai utilisé la gamme. Le résultat de ceci a été supprimé 12 caractères où le curseur était et inséré 12 espaces protégés.


"Convertit l'espace en un espace protégé" C'était votre texte qui ressemblait à vous avoir besoin d'un espace. Qu'est-ce qu'un "espace protégé"? Cette phrase n'est pas utilisée dans Word ou VBA. Comme je me suis menuté, vous devez utiliser la plage au lieu de la sélection, comme Timothy et moi avons fait.



0
votes

Il est possible que la recherche soit arrêtée lorsqu'elle atteint la fin de votre document. Si tel est le cas, vous pouvez (1) déplacer le curseur vers le haut du document avant de trouver / remplacer, et (2) définir xxx

de sorte que vous trouvez des enveloppes quand il atteint la fin de le document.


1 commentaires

Le curseur est déjà au début du document. Ne savez pas où placer la FindContinue, mais je l'ai dit juste avant la boucle. A exécuté la macro sur un document différent avec ces dates dans la présente Ordre: 28 octobre 2019, 22 mai 2005, 15 novembre 2019 et il a ignoré octobre et n'a travaillé que sur mai et novembre. Déplaçant également le curseur vers ailleurs dans le document (par exemple, juste avant le mai) renvoyé le même résultat.



0
votes

Vous êtes sur la bonne voie dans l'utilisation d'un tableau pour contenir les mois, mais vous n'avez pas besoin d'inclure l'espace suivant.

Il n'est pas non nécessaire de rendre les choses compliquées comme trouvez et remplacez peut faire le travail pour vous. xxx


1 commentaires

Oui! Cela a fonctionné à chaque instance d'un mois! Merci! Je ne savais pas que tu pouvais faire de l'article et "", c'est un changeur de jeu