Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.01.2011, 16:13   #11
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
если можно в произвольном месте разорвать параграф--то получится
По-моему, не надо искать лишних преград там, где их нет по условию задачи. Сказано же: простой текст, без изысков. Если же вдруг стоят какие-нибудь неразрывные переносы и прочее, то на них у нас всегда есть Ctrl+H.
garik64 вне форума Ответить с цитированием
Старый 13.01.2011, 12:56   #12
Моторокер
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 42
По умолчанию

Может лучше использовать специализированный инструмент типа TextKit?

По задаче: напишите макрос.
Клавиша Ctrl+PgDn перемещает документ в начало следующей страницы. Чтобы не вставлять разрыв в середину абзаца, надо нажать Ctrl+Стрелка вниз, курсор перейдёт в начало следующего абзаца. Сюда можно вставить NextPage.

Можно вызов макроса навесить на горячую клавишу и держать её, пока не дойдём до конца документа. Либо в макросе в цикле проверять номер страницы, чтобы не зациклилось.
Моторокер вне форума Ответить с цитированием
Старый 14.01.2011, 05:44   #13
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Код:
sub ДобавлениеТекстаВнизуСтраниц()
msgbox
Dim N As Long ' номер страницы
    With Selection
    .HomeKey wdStory ' ставит курсор в начало документа
    N = 1
        Do
            .GoTo What:=wdGoToPage, Which:=wdGoToNext
            N = N + 1
            .MoveUp ' ставит курсор в предыдующую строку
            
            .TypeText "<!--nextpage-->"
            .TypeParagraph
            .TypeParagraph
            
            .MoveDown ' ставит курсор в следующую строку
        Loop Until N = .Information(wdNumberOfPagesInDocument)
    End With
End Sub

Последний раз редактировалось Sasha_Smirnov; 14.01.2011 в 05:51. Причина: добивался импорта в виде раскрашенного кода.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 14.01.2011, 07:01   #14
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
sub ДобавлениеТекстаВнизуСтраниц()
msgbox
"msgbox" тут лишний. Кроме того:

Я бы добавил Application.ScreenUpdating = 0

(иначе уж очень тормозит), текст впечатывал как

Text:="<!--nextpage-->" & Chr(13) & Chr(13)

(всё-таки на две инструкции меньше), а в конце

.EndKey wdStory

и ещё раз Text:="<!--nextpage-->" & Chr(13) & Chr(13)

т.к. набегает ещё одна страница

Последний раз редактировалось garik64; 14.01.2011 в 08:18. Причина: точку забыл
garik64 вне форума Ответить с цитированием
Старый 14.01.2011, 08:11   #15
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Код:
sub ДобавлениеТекстаВнизуСтраниц()
''msgbox
Dim N As Long ' номер страницы
    With Selection
    .HomeKey wdStory ' ставит курсор в начало документа
    N = 1
        Do
            .GoTo What:=wdGoToPage, Which:=wdGoToNext
            N = N + 1
            .MoveUp ' ставит курсор в предыдующую строку
            
            .TypeText "<!--nextpage-->"
            .TypeParagraph
            .TypeParagraph
            
            .MoveDown ' ставит курсор в следующую строку
        Loop Until N = .Information(wdNumberOfPagesInDocument)
    End With
End Sub
получаем даже для гладкого текста ==разрыв параграфа-------------

Под датой исполнения обязательства Лизингополучателя по уплате платежей по Договору понимается дата <!--nextpage-->
--------------лист ------
поступления денежных средств на расчётный счёт Лизингодателя, указанный в ст. 12 Договора. Задержка исполняющим банком поручения
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 14.01.2011, 08:17   #16
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

Цитата:
Сообщение от shanemac51 Посмотреть сообщение
получаем даже для гладкого текста ==разрыв параграфа-------------
И что? Ясно же было сказано: это НЕВАЖНО.
garik64 вне форума Ответить с цитированием
Старый 14.01.2011, 17:58   #17
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Вот именно что неважно. Но топикстартер пока молчит.
Цитата:
Сообщение от The_KING Посмотреть сообщение
Вопрос все еще остается открытым.
...как и 99% вопросов форума
Sasha_Smirnov вне форума Ответить с цитированием
Старый 24.01.2011, 19:00   #18
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

вопрос к garik64 подскажите зачем нужна строка: ScreenUpdating = True
Что произойдёт если её не будет?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 25.01.2011, 02:20   #19
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Надо попробовать!..

(Тем временем зачинатель темы сдал заказ и уехал отдыхать. С ухмылочкой такой.)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 25.01.2011, 11:08   #20
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

Цитата:
Сообщение от Ципихович Эндрю Посмотреть сообщение
вопрос к garik64 подскажите зачем нужна строка: ScreenUpdating = True
Возвращает VBA в режим отображения изменений в тексте.

Цитата:
Что произойдёт если её не будет?
Для документа в большинстве случаев ничего. А вот для макроса может быть всякое непредсказуемое. Особенно если в нём есть элементы диалога с пользователем.

Лично я всегда её вписываю из самых общих соображений: "использовал инструмент - положи на место".
garik64 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить текст в конце каждой строки memo donpizzz Компоненты Delphi 4 20.05.2012 16:25
Начало каждой строки таблицы с новой страницы kcgmizin Microsoft Office Word 5 25.06.2010 18:02
Как добавить в конце каждой строке? Anton62 Помощь студентам 3 07.05.2010 12:19
Как подставить строку в код? Voyager-69 Общие вопросы Delphi 4 09.05.2008 00:08