Ich habe ein Makro in MS Word 2013 VBA (nicht Excel), dass der ausgewählte Text der Highlight-Farbe wechselt. Code sieht aus wie dieses:Looping durch die Teile eines nicht zusammenhängende Auswahl in MS * Wort * VBA
If Selection.Range.HighlightColorIndex = WhtColor Then Selection.Range.HighlightColorIndex = wdNoHighlight Else Selection.Range.HighlightColorIndex = WhtColor
Das für die kontinuierliche/zusammenhängende Auswahl funktioniert gut. Aber wenn ich , sagen wir, 4 nicht zusammenhängende Zeilen in einer Word-Tabelle (sagen wir, Zeilen 5, 12, 15 und 19), markiert das Makro nur die letzte Zeile ausgewählt.
Wie erhalte ich die HighlightColorIndex für alle „Teile“ des unzusammenhängende anzuwenden, oder, wie kann ich eine Schleife durch die verschiedenen „Teile“ des Bereichs und Anwendung der HighlightColorIndex zu jedem Teil?
Antwort
Die Webseite, auf die Tim Williams verweist (support.microsoft.com/en-us/kb/288424) gibt einen Hinweis darauf, wie dies möglich ist. Aber, diese Verbindung zeigt zeigen, dass man nicht durch eine nicht zusammenhängende Auswahl durchlaufen kann.
Dennoch, was auch dieser Link zeigt, dass Schriftformatierung kann für eine nicht zusammenhängende Auswahl festgelegt werden, aber nicht für ein Range-Objekt. Hier
ist der überarbeitete Code, dass tun Arbeit für eine nicht zusammenhängende Auswahl:
If Selection.Font.Shading.BackgroundPatternColor = WhtColor Then Selection.Font.Shading.BackgroundPatternColor = wdColorAutomatic Else Selection.Font.Shading.BackgroundPatternColor = WhtColor
Dieser Code wird die Hintergrundfarbe zu der Zielfarbe ausgewählt ändern (obwohl ich die Farbcodes ändern musste aus Wd-Konstanten zu WdColor-Konstanten).
Der einzige Nachteil bei diesem Ansatz ist, dass ich keine Möglichkeit kenne, nach Text zu suchen, dessen Hintergrundfarbe geändert wurde, während Sie nach Text suchen können, der markiert ist.
Wie auch immer, danke, @Tim Williams für den hilfreichen Link. Ich hoffe, das obige hilft jemandem, der nur die Schrifteigenschaften ändern möchte und nicht wirklich die einzelnen Teile des ausgewählten Bereichs durchlaufen muss.
Nice find @DRC benutzte es hier: https://Stackoverflow.com/a/46106637/3451115 (leider ist die Verbindung zu MS jetzt tot) – SlowLearner
@SlowLearner - clevere Anwendung der Idee auf diesen Beitrag. Nett. – DRC
- 1. Looping durch Arrays in VBA
- 2. VBA Looping durch eine Sammlung
- 3. Randomize-Wort in VBA
- 4. Looping Word Match-Funktion in Excel VBA
- 5. Looping durch alle Instanzen eines Javascript-Objekt
- 6. Uneinheitliche Looping Verhalten von For-Schleife in vba
- 7. Stückweise/nicht zusammenhängende Bereiche?
- 8. Anzeigen eines MS Access-Berichts mit VBA
- 9. Fehlerbehandlung in MS Excel VBA
- 10. Looping durch jedes Blatt funktioniert nicht
- 11. Looping durch NSMutableArray in Swift
- 12. Looping durch mysql_fetch_array in PHP
- 13. innerhalb eines Arrays Objekts Looping
- 14. Looping durch verschiedene Arrays
- 15. Looping durch Variablen
- 16. Looping durch alle Sitzungen eines Servers in PHP
- 17. Looping durch verschiedene Blätter
- 18. Looping durch $ _POST-Variablen
- 19. Looping durch JSON Rückgabewerte
- 20. Looping durch .json Objekt
- 21. Looping durch Etiketten in C#
- 22. berechnen Zeilendifferenz durch Looping
- 23. Looping durch Array-Daten
- 24. Looping durch getElementsByClassName
- 25. Looping durch Wörterbuchobjekt
- 26. Looping durch Array mit Arrays
- 27. Looping durch Dataset
- 28. Looping durch WordPress Kategorien
- 29. Looping durch XML-Dokument
- 30. AppConfig Looping durch
https://support.microsoft.com/en-us/kb/288424 - weiß nicht, wie up-to-date das ist, obwohl –
Das Problem gelöst hat. Aber die Frage ist nicht wirklich ein Duplikat angesichts dessen, was das eigentliche Ziel des Codes war. Ich habe die obige Frage mit der Lösung aktualisiert, dank der Informationen auf dem von @Tim Williams angebotenen Link. – DRC
Entschuldigung - Ich habe die verlinkte Seite nicht vollständig gelesen, bevor ich sie gepostet habe. Ich habe Ihre Frage erneut geöffnet, also sollten Sie jetzt in der Lage sein, sie zu beantworten ... –