Страницы: 1
RSS
Про режим Слияния Word-шаблона и Excel-таблицы..., макрос, который "режет" файл на отдельные файлы
 
Про замечательный макрос Николая Павлова, который "режет" файл, полученный в результате слияния Word-шаблона и Excel-таблицы, на отдельные файлы.
Практически все мои коллеги уже пользуются этим макросом в своих Word-шаблонах.
Служба по работе с персоналом экономит "кучу" времени при рассылке "именной" информации в подчиненные подразделения!
Клиенто-ориентированные службы также экономят "кучу" времени при рассылке "Писем Счастья" тысячам клиентов.
У этих служб Word-шаблоны - многолистовые шаблоны-Договоры, "Письма Счастья" с Ориентацией=Книга.
А у экономических служб табличные Word-шаблоны с Ориентацией=Альбом, которые заполняются информацией из БД для рассылки в подчиненные подразделения.
Если Word-шаблон имеет Ориентацию=Книга, всё - отлично: макрос работает идеально.
Если Word-шаблон имеет Ориентацию=Альбом, то в "нарезанных" файлах появляется кроме информационного листа пустой лист с Ориентацией=Книга.
В вопросах программирования на VBA я - почти абсолютный "чайник".
Помогите, пожалуйста, решить эту проблему в вышеуказанном макросе. Макрос Николая Павлова (для Слияния Word-шаблона и Excel-таблицы)
Код
Sub Split_document()
    Dim srcdoc As Document, newdoc As Document
    Dim i As Integer
     
    Set srcdoc = ActiveDocument
    For i = 1 To srcdoc.Sections.Count - 1
        srcdoc.Sections(i).Range.Copy
        Set newdoc = Documents.Add
        newdoc.Range.Paste
        newdoc.Sections(2).PageSetup.SectionStart = wdSectionContinuous
        newdoc.SaveAs srcdoc.Path & "\" & Left(srcdoc.Name, Len(srcdoc.Name) - 4) & _
            "_" & Format(i, "000") & ".doc"
        newdoc.Close
    Next
End Sub
Изменено: Мотя - 10.08.2016 22:55:07
 
Это спасёт тружеников .
Код
    Set newdoc = Documents.Add
    Ориентация = "Альбом"
    'Меняем ориентацию   :) 
    If Ориентация = "Альбом" Then
        newdoc.PageSetup.Orientation = 1    'Альбом
    Else
        newdoc.PageSetup.Orientation = 0    'Книга
    End If

 
Сергей!
А как же я в макросе узнаю, какая ориентация у текущего шаблона?  :(
 
Очень просто.
Код
 Set newdoc = Documents.Add
 if  newdoc.PageSetup.Orientation = 1  then'Ориентация = "Альбом"
 newdoc.PageSetup.Orientation = 0 'Меняем на книгу
 end if

Или без проверки
Код
 newdoc.PageSetup.Orientation = 0
Изменено: Doober - 10.08.2016 22:32:33
 
Цитата
Мотя написал:
Если Word-шаблон имеет Ориентацию=Альбом, то в "нарезанных" файлах появляется кроме информационного листа пустой лист с Ориентацией=Книга.
Это в итоге поможет мне получить только один лист в файле с Ориентацией=Альбом, без пустого листа?
Изменено: Мотя - 10.08.2016 22:56:10
 
Наверное, файлик щупать надо.
 
Сергей!
Огромное спасибо за Ваш макрос: теперь всё "точно, как в аптеке"!  :D
Изменено: Мотя - 12.08.2016 08:56:20
Страницы: 1
Наверх