Hallo zusammen und entschuldigt mein Englisch: Ich habe dieses Makro, das einen Stiltrenner hinzufügt, und es funktioniert einwandfrei, außer dass es vor dem Absatz ein Leerzeichen einfügt. Wie kann ich das Makro so ändern, dass es das nicht hinzufügt, oder, wenn es das tut, es später entfernt?
Sub SeparadordeEstilos()
With Selection
.InsertBefore vbCr
.InsertStyleSeparator
.Paragraphs(1).Range.Font.Reset
.Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub
Bearbeitet:
Vielen Dank auch, Charles, und ich entschuldige mich bei allen, dass ich nicht alle Einzelheiten erklärt habe. Ich brauche in einer Gliederung mit mehreren Ebenen zwei Arten von Absätzen mit derselben Nummerierung. Einige mit einem fetten Schriftstil, die im Inhaltsverzeichnis erscheinen, und andere mit einer normalen Schriftart, die nicht im Inhaltsverzeichnis erscheinen. Also habe ich zwei Stile erstellt,PLL Stufe 2mit Fettschrift, die im Inhaltsverzeichnis erscheint undPLL Stufe 2 notdc, ohne Fettschrift, die nicht im Inhaltsverzeichnis erscheint, das automatisch mit dem Stiltrennzeichen angewendet wird, wenn das Makro ausgeführt wird, das ich in der Frage beschreibe. Dies ist die einzige Lösung, die ich dafür gefunden habe, insbesondere aufgrund der Anforderung einer fortlaufenden Nummerierung.
Bis auf den Leerraum funktioniert alles einwandfrei. Dieser Leerraum ist im Dokument sehr schlecht, er verleiht ihm keinen professionellen Touch, im Gegenteil, er lässt es schlampig aussehen.
Daher brauche ich eine Alternative oder die Möglichkeit, die Leerzeichen zu entfernen.
Hier ist einBeispieldokumentmit dem Problem. Ich dachte, dass die fortlaufende Nummerierung einwandfrei funktioniert, weil ich sie bei aktivierter Option „Alle anzeigen“ gesehen habe, aber wenn ich sie ausschalte (Alle anzeigen), funktioniert sie auch nicht und legt eine andere Nummerierung fest.
Bearbeiten 2
Antwort1
Sie möchten etwas Platz, also ein Leerzeichen, zwischen Ihren beiden Absätzen!
Wenn Ihr Code am Ende eines Absatzes vor der Absatzmarke ausgeführt wird, fügt er einStiltrennzeichenund ein Leerzeichen, wobei das Leerzeichen im neuen Stil ist.
Wenn die Zeile .insertBefore vbCr
weggelassen wird, wie vorgeschlagen vonReddy, und es wird am Ende eines Absatzes ausgeführt. Es fügt den Stiltrenner und ein Leerzeichen hinzu, entfernt die aktuelle Absatzmarke und bringt den nächsten Absatz im neuen Stil nach oben, sodass er wie ein einzelner Absatz mit zwei Absatzstilen erscheint.
Der Platz wird wahrscheinlich benötigt, um den Stil anzuwenden. Im zweiten Fall ist es sicherlich notwendig, den Text Ihres ersten Absatzes tatsächlich von dem des zweiten zu trennen.
Möchten Sie diesen Platz wirklich beseitigen?
Hier ist Ihr überarbeitetes Makro:
Sub InsertStyleSeparator()
' Use at end of paragraph just before paragraph mark.
With Selection
' .InsertBefore vbCr
.InsertStyleSeparator
.Paragraphs(1).range.Font.Reset
.Paragraphs(1).Style = ("PLL Nivel 2 notdc")
End With
End Sub
Beachten Sie den Kommentar, den ich hinzugefügt habe: Verwenden Sie dies am Ende des Absatzes, nicht am Anfang.
Hier ist deinBeispieldokument, mit dem Makro.
Bei Verwendung mit dem Stiltrennzeichen hat der Teil, der dem Absatz hinzugefügt wird, keine eigene Nummer. Er verhält sich optisch wie ein Teil des Absatzes, von dem er durch das Stiltrennzeichen getrennt ist.
Antwort2
vbCr
ist eine neue Zeile. Diese Codezeile .InsertBefore vbCr
fügt eine neue Zeile vor Ihrem Stil ein. Entfernen Sie sie, um ein Leerzeichen vor Ihrem Absatz zu vermeiden.