Массовое удаление страниц из Word-документа по условию

25 декабря 2015, пятница | просмотров: 3770

Здравствуй, уважаемый читатель! Очередную задачу поставили передо мной сотрудники из соседнего отдела. Требовалось массово удалить ненужные страницы из RTF-документа по некоторому условию. Документ содержит выписки застрахованных лиц (людей). Каждая выписка состоит из определенного количества таблиц, однако размер таблиц может достигать нескольких страниц. Поэтому каждая выписка имеет произвольную длину.

Вот так выглядит исходный документ:



Массовое удаление страниц из Word-документа по условию



Требовалось удалить выписки, у которых значение "ЕВДП" на последней таблице равно нулю.



Массовое удаление страниц из Word-документа по условию



Начал я с того, что просмотрел документ в режиме отображения непечатаемых знаков и заметил, что между выписками имеется разрыв раздела! Это значительно облегчает работу.



Массовое удаление страниц из Word-документа по условию



Далее я определил порядковый номер ключевой таблицы. Он оказался равен пяти. Теперь остается только в предпоследней строке каждой пятой таблицы считывать значение, и если это значение равно нулю, то удалить весь раздел целиком.

Инструментом для меня будет служить встроенный язык Visual Basic, который открывается нажатием клавиши Alt-F11.



Массовое удаление страниц из Word-документа по условию



Вот, написанный мной код, который массово удаляет страницы из документа по заданному условию:


Sub jumred()
Dim S As Section
For Each S In ActiveDocument.Range.Sections
DEL = True
TableCount = S.Range.Tables.Count
If TableCount >= 5 Then
R = S.Range.Tables(TableCount).Rows.Count
C = S.Range.Tables(TableCount).Columns.Count
If (Mid(S.Range.Tables(TableCount).Cell(R - 1, 3).Range, 1, 4) = "ЕВДП") And (Val(S.Range.Tables(TableCount).Cell(R - 1, C).Range) > 0) Then
DEL = False
End If
End If
If DEL Then S.Range.Delete
Next
MsgBox "Выполнено полностью", vbInformation
End Sub


Запуск осуществляется нажатием на клавишу F5.

По окончании работы появится информационное окно:



Массовое удаление страниц из Word-документа по условию



Код работает очень быстро и без ошибок. Его условия можно легко изменять под нужные требования.

До новых встреч!




Понравилась публикация? Поддержи сайт, поделись записью внизу страницы !


Комментариев нет.




Только подтвержденные пользователи могут оставлять комментарии.

Поделиться страницей в социальных сетях



Поделиться ВКонтакте Поделиться Facebook Поделиться Одноклассники Поделиться Twitter Поделиться Google+

Личный кабинет




Регистрация

Знаете ли вы...


Леонардо да Винчи был вегетарианцем. Ему принадлежат слова *Если человек стремится к свободе, почему он птиц и зверей держит в клетках?.. человек воистину царь зверей, ведь он жестоко истребляет их. Мы живем умерщвляя других. Мы ходячие кладбища! Ещё в раннем возрасте я отказался от мяса*.


Просмотр изображения