powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / слияние в Word'е
5 сообщений из 5, страница 1 из 1
слияние в Word'е
    #32822366
idv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
idv
Гость
Всем привет!
Подскажите пожауйста, каким образом можно автоматизировать следующий процесс: у меня в ворде есть 147 страничек, которые получаются при слиянии документа, мне нужно каждую страничку сохранить в отдельном вордовском документе. Может быть есть какая-нить функция при слиянии, чтобы слияние проходило сразу в отдельные документы???
Помогите плиз!
...
Рейтинг: 0 / 0
слияние в Word'е
    #32823491
Galustov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Слияние в новый документ"
Там всё разделяется по листам а уж листики разрезать на документы проблем нет
...
Рейтинг: 0 / 0
слияние в Word'е
    #32824491
idv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
idv
Гость
Так слияние получается в новый документ, это я согласен. А каким образом из нового документа каждый лист сохранить в отдельном файле, то есть получить 147 новых документов, в каждом по одному листу???
Можно ручками конечно сохранять но 147 листов не хочется, а автоматически как то получается. У меня кстати Word 2003.
...
Рейтинг: 0 / 0
слияние в Word'е
    #32825134
Galustov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый день
вот это работает

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
Sub each_sheet_into_new_document()
'помещает каждый лист в отдельный документ
Dim word_App As New Word.Application
Dim word_Doc As Word.Document
Dim word_Shape As Shape
Selection.HomeKey Unit:=wdStory

pages_count = ActiveDocument.Range.ComputeStatistics(wdStatisticPages)
For i =  1  To pages_count
    Set word_Doc = word_App.Documents.Add
    With word_Doc
    If i = pages_count Then
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
    Else
        Selection.ExtendMode = True
        Selection.GoToNext wdGoToPage
        Selection.MoveLeft wdCharacter,  1 , False
                
    End If
        text_for_input = Selection
        Selection.ExtendMode = False
        Selection.MoveRight wdCharacter,  2 , False
        .StoryRanges(wdMainTextStory) = text_for_input
        word_App.Visible = True

        
        If i <  10  Then
            p = "0" & i
        Else
            p = i
        End If
        
        .SaveAs "C:\Лист-" & p & ".doc"
    End With
Next i

'этот кусок кода переносит shapes в новый документ
        For Each word_Shape In ActiveDocument.Shapes
            'MsgBox ActiveDocument.Shapes.Count
            word_Shape.Select
            p = Selection.Information(wdActiveEndPageNumber)
            If p <  10  Then
                p = "0" & Selection.Information(wdActiveEndPageNumber)
            End If
            Selection.Copy
            word_App.Documents("Лист-" & p & ".doc").Activate
            word_App.Selection.Paste
        Next word_Shape
        
        For Each doc In word_App.Documents
            doc.Save
        Next doc

Set word_App = Nothing
End Sub

...
Рейтинг: 0 / 0
Период между сообщениями больше года.
слияние в Word'е
    #38160224
Anytka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Galustovдобрый день
вот это работает

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
Sub each_sheet_into_new_document()
'помещает каждый лист в отдельный документ
Dim word_App As New Word.Application
Dim word_Doc As Word.Document
Dim word_Shape As Shape
Selection.HomeKey Unit:=wdStory

pages_count = ActiveDocument.Range.ComputeStatistics(wdStatisticPages)
For i = 1 To pages_count
    Set word_Doc = word_App.Documents.Add
    With word_Doc
    If i = pages_count Then
        Selection.EndKey Unit:=wdStory, Extend:=wdExtend
    Else
        Selection.ExtendMode = True
        Selection.GoToNext wdGoToPage
        Selection.MoveLeft wdCharacter, 1, False
                
    End If
        text_for_input = Selection
        Selection.ExtendMode = False
        Selection.MoveRight wdCharacter, 2, False
        .StoryRanges(wdMainTextStory) = text_for_input
        word_App.Visible = True

        
        If i < 10 Then
            p = "0" & i
        Else
            p = i
        End If
        
        .SaveAs "C:\Лист-" & p & ".doc"
    End With
Next i

'этот кусок кода переносит shapes в новый документ
        For Each word_Shape In ActiveDocument.Shapes
            'MsgBox ActiveDocument.Shapes.Count
            word_Shape.Select
            p = Selection.Information(wdActiveEndPageNumber)
            If p < 10 Then
                p = "0" & Selection.Information(wdActiveEndPageNumber)
            End If
            Selection.Copy
            word_App.Documents("Лист-" & p & ".doc").Activate
            word_App.Selection.Paste
        Next word_Shape
        
        For Each doc In word_App.Documents
            doc.Save
        Next doc

Set word_App = Nothing
End Sub



Спасибо! Действительно работает!!!
Но у меня возникла проблемка: на листе таблица с данными, а в отдельный файл вставляется только текст из таблицы! :( Причем в столбик (жутко не читаемо)...
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / слияние в Word'е
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]