![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
Доброго дня всем !
В общем создал форму для удаления страниц в Word Однако не могу корректно удалить страницы в диапазоне по условию: а нужно именно так 1)Имеем диапазон страниц с TextBox1 до TextBox2 для удаления 2)Определяем количество разрывов страниц в диапазоне (например их будет 5) 3)Удаляем все до 1 разрыва страницы и сохраняем 1 разрыв страницы (применяется Макрос2 для удаления) 4)Далее после 1 разрыва страницы удаляем все содержимое и все разрывы 2,3,4,5 (применяется Макрос1 для удаления) Код макроса Код:
и действия с переменной i , где i - номер страницы в цикле Можно ли в Word както этот цикл сделать ? |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Зачем эти заморочки или это такая задача? Удалите сразу всю область диапазона страниц и вставьте в это место разрыв страницы. Результат будет один в один, так как удаление разрыва страницы ни на что не влияет, в отличие от удаления разрыва раздела.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
понял вас - да действительно вы правы но как именно в это место вставить разрыв раздела (в место удаления) - не знаю как определить это место после удаления
Допустим удалили страницы диапазона Код:
Последний раз редактировалось oleg4226; 21.09.2019 в 08:52. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Где-то так:
Код:
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
ничего не понимаю в вашем макросе - это все новое для меня - буду изучать еще и функция непонятная - это вообще темный лес.))
это высший пилотаж - мне далеко до этого Строчку PAGES_GetRange(ActiveDocument, 2, 3).Select заменить на PAGES_GetRange(ActiveDocument, TextBox1.Value, TextBox2.Value).Select так понимаю ? и строка Selection.InsertBreak Type:=wdSectionBreakNextPage определяет вставку разрыва раздела в предыдущую страницу а если там текстом запполнено и разрыв не вставится и перейдет на следующую страницу ? по моему алгоритму - пробовал руками сначала аккуратно удалять - все проходит нормально - но сложно получается благодарю за помощь и заранее извиняюсь за глупые вопросы - я чайник в VBA только на примерах из инета учусь )) попробую - отпишусь Последний раз редактировалось oleg4226; 21.09.2019 в 11:42. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
нет не катит - создает новую страницу с разделом после предыдущей - а это не надо щас пример сделаю с вашим макросом
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
когда удаление происходит - по логике вашей - надо убивать сначала разрыв предыдущего раздела - потом удалять - а потом добаввлять разрыв
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
в общем пример с вашим внедренным макросом добавил
там смещение разделов происходит и разрыв попадает не туда Последний раз редактировалось oleg4226; 21.09.2019 в 12:33. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 20.04.2014
Сообщений: 28
|
![]()
в общем по моей логике
1)убить диапазон до начала 1 разрыва 2)сохранить разрыв и далее начать удаление с конца разрыва 3)убить все до последней страницы диапазона (если последняя страница диапазона имеет разрыв - и его убить) корректно проходит когда руками делаешь Последний раз редактировалось oleg4226; 21.09.2019 в 12:39. |
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 29.09.2008
Сообщений: 378
|
![]()
Похоже, вы всю тему путаете элементы "разрыв раздела" и "разрыв страницы". Я же сразу намекнул, что разрыв раздела - это совсем другой коленкор. Лучше всегда прикладывать пример документа - и вам писать меньше, и нам догадываться не нужно.
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск ext2 разделов | roman74 | Общие вопросы Delphi | 0 | 09.07.2011 17:52 |
Список разделов диска на Delphi | Rock4se4 | Помощь студентам | 0 | 30.01.2010 07:17 |
Восстановление форматированых разделов... | Witalyj_sk | Софт | 1 | 29.06.2009 01:21 |
Создание новых разделов | PAVEL315 | О форуме и сайтах клуба | 14 | 20.01.2007 23:05 |