Hellraider
14.01.2007, 17:33
Ich habe folgende Problemstellung:
Innerhalb eines Word 2003 Dokumentes möchte ich nach jeder Überschrift 2ter Ebene (bis auf die erste Überschrift) einen Zeilenumbruch oberhalb durchführen.
Mein Code sieht bisher so aus:
y = 0 'Anzahl vorhandener Überschriften 2.Ebene
ya = 0 'Anzahl aller vorgenommenen Seitenumbrüche
With ActiveDocument.Content.Find 'Ermittlung aller vorhandenen Überschriften 2.Ebene
.ClearFormatting
.Style = wdStyleHeading2
Do While .Execute(FindText:="", Forward:=True, Format:=True) = True
y = y + 1
Loop
End With
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1" 'Zu 1. Seite des Dokumentes wechseln
For i = 0 To y
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles(wdStyleHeading2)
With Selection.Find
.Forward = True
.Wrap = wdFindContinue
.Format = True
End With
If i > 0 Then
Selection.Find.Execute
With Selection.ParagraphFormat
.PageBreakBefore = True
ya = ya + 1 'für interne Zählung aller durchgeführten Umbrüche
End With
End If
Next i
Probleme bereit mir derzeit folgender Code-Teil:
If i > 0 Then
Selection.Find.Execute
With Selection.ParagraphFormat
.PageBreakBefore = True
End With
End If
Dieser sollte eigentlich bewirken, das nach der ersten Fundstelle (i=0) eben kein Zeilenumbruch vorgenommen wird, aber irgendwie klappt das nicht. Der Zähler ist beim ersten Durchlauf der If Funktion 0 und überspringt laut Überwachungsanzeige auch die Teile innerhalb der If Funktion (als erstes wird If i > 0 Then ausgeführt und dann wird zu End If gesprungen). Trotzdem wird aber ein Zeilenumbruch durchgeführt, so dass der Fehler eigentlich irgendwo innerhalb der if Funktion selbst zu suchen sein muss, aber wo? :?
Kann mir da jemand einen Tip geben?
Innerhalb eines Word 2003 Dokumentes möchte ich nach jeder Überschrift 2ter Ebene (bis auf die erste Überschrift) einen Zeilenumbruch oberhalb durchführen.
Mein Code sieht bisher so aus:
y = 0 'Anzahl vorhandener Überschriften 2.Ebene
ya = 0 'Anzahl aller vorgenommenen Seitenumbrüche
With ActiveDocument.Content.Find 'Ermittlung aller vorhandenen Überschriften 2.Ebene
.ClearFormatting
.Style = wdStyleHeading2
Do While .Execute(FindText:="", Forward:=True, Format:=True) = True
y = y + 1
Loop
End With
Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="1" 'Zu 1. Seite des Dokumentes wechseln
For i = 0 To y
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles(wdStyleHeading2)
With Selection.Find
.Forward = True
.Wrap = wdFindContinue
.Format = True
End With
If i > 0 Then
Selection.Find.Execute
With Selection.ParagraphFormat
.PageBreakBefore = True
ya = ya + 1 'für interne Zählung aller durchgeführten Umbrüche
End With
End If
Next i
Probleme bereit mir derzeit folgender Code-Teil:
If i > 0 Then
Selection.Find.Execute
With Selection.ParagraphFormat
.PageBreakBefore = True
End With
End If
Dieser sollte eigentlich bewirken, das nach der ersten Fundstelle (i=0) eben kein Zeilenumbruch vorgenommen wird, aber irgendwie klappt das nicht. Der Zähler ist beim ersten Durchlauf der If Funktion 0 und überspringt laut Überwachungsanzeige auch die Teile innerhalb der If Funktion (als erstes wird If i > 0 Then ausgeführt und dann wird zu End If gesprungen). Trotzdem wird aber ein Zeilenumbruch durchgeführt, so dass der Fehler eigentlich irgendwo innerhalb der if Funktion selbst zu suchen sein muss, aber wo? :?
Kann mir da jemand einen Tip geben?