die Definition von IsEmpty
in der VBA-Sprachreferenz nachschlagen. Es tut nicht, was du dir vorstellst.
Der richtige Weg, um herauszufinden, ob es Textinhalte gibt, ist die Anzahl der Zeichen zu überprüfen. In VBA erfolgt dies typischerweise mit der Funktion Len
(= Länge). Sie würden denken, dass der Vergleich auf 0 (Null) sein sollte, aber das ist nicht der Fall für einen Absatz, weil ein Word-Absatz immer seine Absatzmarke enthält (ANSI 13).
Wählen Sie außerdem keine Notwendigkeit, der Absatz oder einen Bereich, um es zu löschen, benutzen Sie einfach die Delete
Methode direkt auf dem par.Range
. (Das bedeutet, Sie brauchen auch nicht ein Word.Application
Objekt zu übergeben.
Beachten Sie auch, dass Ihr Code nichts Seiten macht, nur den Absätzen ... Es konnte gelöscht leere Seiten, je nachdem, wie sich die Dinge formatiert sind, aber es könnte sinnvoll sein, um die Funktion zu benennen und kommentieren, wie diese
So mehr wie arbeiten es soll.
Public Function DeleteBlankPages(wd As Word.Document)
Dim par As Paragraph
For Each par In wd.Paragraphs
If Len(par.Range.Text) <= 1 Then
par.Range.Delete
End If
Next par
End Function
Haben Sie versucht, es Zeile für Zeile mit dem Debugger ausgeführt wird? – litelite