2017-02-13 93 views
-1

Я пытаюсь удалить пустые страницы в документе Word. Из-за проблем, которые этот процесс поднимает с точки зрения устранения форматирования документа, я решил применить это удаление только в конце документа (точнее, за определенной закладкой). (Слишком агрессивный) делеция код сам по себе:Как применить для каждого цикла к абзацам, предшествующим определенной закладке или номеру страницы?

For Each para In ActiveDocument.Paragraphs 
    If Len(para.Range.Text) <= 1 Then 
     para.Range.Delete 
    End If 
Next para 

На данный момент я попробовал:

Dim iPage As Long 
cursor.Goto What:=wdGoToBookmark, Name:=("Appendix") 
iPage = cursor.Information(wdActiveEndPageNumber) 

Где Ipage получает номер страницы выбора, когда он пошел к моей закладке «Приложения. "

Мой вопрос в том, как я могу применить это удаление только к параграфам за этот момент?

+0

Что вы подразумеваете под * «примените этот номер страницы» *? –

+0

извините, опечатка. amended –

ответ

0

Это то, что вы пытаетесь сделать?

Dim para As Paragraph 
With ThisDocument 
    For Each para In .Range(.Bookmarks("Appendix").End, .Range.End).Paragraphs 
     If Len(para.Range.Text) <= 1 Then para.Range.Delete 
    Next 
End With 
+1

Работает с небольшой модификацией. Я обменял этот документ на objWord.ActiveDocument. Спасибо за вашу помощь, я узнал несколько новых вещей о синтаксисе VB! –