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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2011, 09:22   #1
Serg1986
Новичок
Джуниор
 
Регистрация: 13.05.2011
Сообщений: 2
По умолчанию Вставить разрыв страниц между параграфами

Добрый день. Пишу скрипт для копирования данных из одного документа в другой:
PHP код:
Sub MySelection()

Dim start_r As Long
Dim end_r 
As Long
Dim rng 
As Range
Dim doc 
As Document
Dim text_r 
As String
Dim counter 
As Long
counter 
0
Selection
.HomeKey Unit:=wdStory

 Selection
.Find.ClearFormatting
    Selection
.Find.Replacement.ClearFormatting
    With Selection
.Find
        
.text "[0-9]/[0-9]"
        
.Replacement.text ""
        
.Forward True
        
.Wrap wdFindContinue
        
.Format False
        
.MatchCase False
        
.MatchWholeWord False
        
.MatchWildcards True
        
.MatchSoundsLike False
        
.MatchAllWordForms False
    End With
    
    Set doc 
Application.Documents.Add
    Application
.Documents.Item(2).Activate
    
While Selection.Find.Execute True
If (Selection.text <> ""Then

//функция ищет начало квитанции
SubGetStart
start_r 
Selection.start
SubGetEnd
end_r 
Selection.End
Selection
.SetRange start_rend_r
Selection
.Copy

Application
.Documents.Item(1).Activate

doc
.Paragraphs(doc.Paragraphs.Count).Range.Paste

counter 
counter 1
If ((counter Mod 2) = 0Then
//doc.Paragraphs(doc.Paragraphs.Count).Range.InsertBreak 7
End If
//Почему этот кусок кода не вставляет разрыв в документ?
doc.Paragraphs(doc.Paragraphs.Count).Range.InsertBreak 7


Application
.Documents.Item(2).Activate

SubFindChar
Selection
.SetRange end_rend_r
End 
If
Wend
End Sub 
Алгоритм такой: ищем в документе квитанции у которых в суммах есть символ (/) и копируем эти квитанции во второй документ, на странице должно быть две квитанции, т.е после каждой второй ставим разрыв страниц. Почему у меня не работает строчка doc.Paragraphs(doc.Paragraphs.Count ).Range.InsertBreak 7 и вместо разрыва вставляется перевод каретки? Спасибо.
Serg1986 вне форума Ответить с цитированием
Старый 15.05.2011, 08:33   #2
garik64
Форумчанин
 
Регистрация: 09.07.2009
Сообщений: 111
По умолчанию

Похоже, Вы где-то раньше указали, что .InsertBreak Type:=wdLineBreak. Попробуйте явно указать, что Вам нужен wdPageBreak.
garik64 вне форума Ответить с цитированием
Старый 16.05.2011, 09:35   #3
Serg1986
Новичок
Джуниор
 
Регистрация: 13.05.2011
Сообщений: 2
По умолчанию

Я думал что строчка
doc.Paragraphs(doc.Paragraphs.Count ).Range.InsertBreak wdPageBreak
указывает на то что InsertBreak Type=wdPageBreak.
Только вместо разрыва вставляется перевод каретки, почему-то, может Paragraphs не может содержать разрыв?
Serg1986 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Word VBA как вставить разрыв принудительный в формулу ? bdfy Microsoft Office Word 13 01.12.2010 08:06
Вставить разрыв страницы alexvav Microsoft Office Excel 2 14.09.2010 14:51
Microsoft Office Word Разрыв страниц и растягивание DuBy Microsoft Office Word 7 27.02.2010 13:12
разрыв страниц в конце таблиц Jaroslav Microsoft Office Excel 3 08.12.2009 10:24