Word 2003 jede seite in ein neues Dokument speichern
Hallo Leute,
ich soll hinkriegen, dass aus einem Bestehenden Word Dokument das mehrere Seiten hat(die Seitenzahl kann varieren), jede Seite als ein neues Dokument abgespeichert wird.
Also Seite 1 von Dokument A soll in Dokument 001 gespeichert werden, Seite 2 von Dokument A soll in Dokument 002 gespeichert werden, usw.
Dokument 001 und 002 existieren noch nicht.
Ich habe ein Makro, dass aber nur die Hälfte macht, d.h. bei Seite 1 funktioniert es, bei Seite zwei ist das Dokument leer obwohl die zweite Seite gefüllt ist, usw.
Der code des Macros ist folgender,
Nun meine Frage was ist an dem Macro falsch?
Danke für eure Hilfe.
Gruß
0cool
ich soll hinkriegen, dass aus einem Bestehenden Word Dokument das mehrere Seiten hat(die Seitenzahl kann varieren), jede Seite als ein neues Dokument abgespeichert wird.
Also Seite 1 von Dokument A soll in Dokument 001 gespeichert werden, Seite 2 von Dokument A soll in Dokument 002 gespeichert werden, usw.
Dokument 001 und 002 existieren noch nicht.
Ich habe ein Makro, dass aber nur die Hälfte macht, d.h. bei Seite 1 funktioniert es, bei Seite zwei ist das Dokument leer obwohl die zweite Seite gefüllt ist, usw.
Der code des Macros ist folgender,
Private Const Praefix = "Serienbrief"
Sub ResultatDesSeriendrucksAufteilenOhneKopfUndFusszeilen()
Dim oDoc As Document, Abschnitt As Section, nDoc As Document
Set oDoc = ActiveDocument
Verzeichnis = oDoc.Path 'Falls Ergebnis bereits gespeichert, dann im selben Pfad
If Verzeichnis = "" Then 'Sonst im Standard-Dokumentenverzeichnis
Verzeichnis = Dialogs(wdDialogToolsOptionsFileLocations).Setting
End If
Anz = oDoc.Sections.Count 'Für alle Abschnitte
For i = 1 To Anz - 1
Set Abschnitt = oDoc.Sections(i)
Set nDoc = Documents.Add(Template:=oDoc.AttachedTemplate.FullName)
nDoc.Content.FormattedText = Abschnitt.Range.FormattedText
nDoc.Range.Find.Execute FindText:="^b", ReplaceWith:="" 'Abschnittwechsel suchen
dsname = Verzeichnis & "\" & Praefix & Format(i, "0000") & ".doc"
nDoc.SaveAs FileName:=dsname, AddToRecentFiles:=False
nDoc.Close
Next i
End Sub
Nun meine Frage was ist an dem Macro falsch?
Danke für eure Hilfe.
Gruß
0cool
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 118684
Url: https://administrator.de/contentid/118684
Ausgedruckt am: 25.11.2024 um 12:11 Uhr
3 Kommentare
Neuester Kommentar
hallo,
als programmiermäßiger ungeschulter laie fällt mir aber schon mal folgende Zeile auf:
For i = 1 To Anz - 1
ich würde das so interpretieren: i = 1 to anz- 1 --> mache seite1 in doc 1 und dann schluß und aus.
nur so ein gedanke, programmierer werden mir da vielleicht widersprechen.
folgender gedanke kommt mir noch für diese zeile:
for i > 0 To Anz - > 0
probiers mal mit diesem gedanken.
dieter
als programmiermäßiger ungeschulter laie fällt mir aber schon mal folgende Zeile auf:
For i = 1 To Anz - 1
ich würde das so interpretieren: i = 1 to anz- 1 --> mache seite1 in doc 1 und dann schluß und aus.
nur so ein gedanke, programmierer werden mir da vielleicht widersprechen.
folgender gedanke kommt mir noch für diese zeile:
for i > 0 To Anz - > 0
probiers mal mit diesem gedanken.
dieter
Hallo 0cool!
Also, ich habe das mal getestet und herausgefunden, dass egal wieviel Seiten ich habe, der Sections.Count und Sections.Item immer 1 ist.
Zum Ersetzen von Seitenumbrüchen:
@dieter_56
Die Anweisung "For i = 1 To Anz - 1" ist kein Fehler und bedeutet Schleifenzähler von 1 bis (Wert - 1)
Gruß Dieter
[Edit] Im Text hatte ich anstatt Seiten- Zeilenumbrüche geschrieben. Im Code war's aber richtig [/Edit]
Also, ich habe das mal getestet und herausgefunden, dass egal wieviel Seiten ich habe, der Sections.Count und Sections.Item immer 1 ist.
Zum Ersetzen von Seitenumbrüchen:
FindText:=vbFormFeed, ReplaceWith:="", Replace:=wdReplaceAll ' Chr(12)
@dieter_56
Die Anweisung "For i = 1 To Anz - 1" ist kein Fehler und bedeutet Schleifenzähler von 1 bis (Wert - 1)
Gruß Dieter
[Edit] Im Text hatte ich anstatt Seiten- Zeilenumbrüche geschrieben. Im Code war's aber richtig [/Edit]