Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос который задает имя по умолчанию при сохранении вордовского документа / 19 сообщений из 19, страница 1 из 1
18.06.2010, 14:39
    #36694824
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Добрый день!!!!!
Есть такая проблема........
В екселевской таблице ведется реестр постановлений.
При помощи слияния на основании информации, внесенной в ексель, в ворде формируются распоряжения.
Распоряжение идет на 1 л. После завершения слияния пользователю приходится сохранять каждое распоряжение. Имя вордовского документа вносится вручную (имя документа совпадает с переменным полем MERGEFIELD (например "ФИО").
Вопрос:
Как с помощью макроса сделать так, чтобы имя по умолчанию при сохранении бралось из переменного поля???????
Есть макрос который сохраняет лист в новом документе и имя по умолчанию Письмо 1, Письмо 2 и т.д.:

Sub SaveEachPageToFile()
Dim oRng As Range, oMainDoc As Document, oNewDoc As Document, sFileName$, iPage%

Application.ScreenUpdating = False

Set oMainDoc = ActiveDocument

Set oRng = oMainDoc.Range

Do While iPage <= oMainDoc.ComputeStatistics(2) 'wdStatisticPages
iPage = iPage + 1

If iPage < oMainDoc.ComputeStatistics(2) Then
oRng.SetRange oRng.Start, oRng.GoToNext(1).Start 'wdGoToPage
Else
oRng.SetRange oRng.Start, oMainDoc.Range.End
End If

oRng.Copy

Set oNewDoc = Documents.Add

oNewDoc.Range.PasteAndFormat 16 'wdFormatOriginalFormatting
sFileName = "Страница " & iPage & " документа «" & Mid(oMainDoc.Name, 1, InStrRev(oMainDoc.Name, ".") - 1) & "»"

oNewDoc.SaveAs oMainDoc.Path & Application.PathSeparator & sFileName & ".doc", AddToRecentFiles:=False, FileFormat:=wdFormatDocument97

oNewDoc.Close True

Set oRng = oRng.GoToNext(1) 'wdGoToPage
Loop

Application.ScreenUpdating = True
MsgBox "Сохранено в файлы " & iPage & " страниц." & vbCr & _
"Папка сохранения: " & oMainDoc.Path & Application.PathSeparator, vbOKOnly + vbInformation, "Документы сохранены"
End Sub

oNewDoc.Content.Delete
oRng.Copy
oNewDoc.Content.Paste


sFileName = "Страница " & iPage & " документа (" & Mid(oMainDoc.Name, 1, InStrRev(oMainDoc.Name, ".") - 1) & ")"
oNewDoc.SaveAs oMainDoc.Path & Application.PathSeparator & sFileName & ".doc", AddToRecentFiles:=False ', FileFormat:=wdFormatDocument97
Loop While iPage < cntp

Set oRng = Nothing
tmu = timeGetTime() - tm
oNewDoc.Close wdDoNotSaveChanges
Set oNewDoc = Nothing
Application.ScreenUpdating = True

tm = timeGetTime() - tm
timeEndPeriod 1
Debug.Print "Модифицированный = " & CStr(tm / 1000) & "(" & CStr(tmu / 1000) & ")"
MsgBox "Сохранено в файлы " & iPage & " страниц." & vbCr & _
"Папка сохранения: " & oMainDoc.Path & Application.PathSeparator, vbOKOnly + vbInformation, "Документы сохранены"
Set oMainDoc = Nothing
End Sub
...
Рейтинг: 0 / 0
18.06.2010, 14:41
    #36694829
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Код: 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.
57.
58.
Sub SaveEachPageToFile()
  Dim oRng As Range, oMainDoc As Document, oNewDoc As Document, sFileName$, iPage%

  Application.ScreenUpdating = False

  Set oMainDoc = ActiveDocument

  Set oRng = oMainDoc.Range

  Do While iPage <= oMainDoc.ComputeStatistics( 2 ) 'wdStatisticPages
    iPage = iPage +  1 

    If iPage < oMainDoc.ComputeStatistics( 2 ) Then
      oRng.SetRange oRng.Start, oRng.GoToNext( 1 ).Start 'wdGoToPage
    Else
      oRng.SetRange oRng.Start, oMainDoc.Range.End
    End If
 
    oRng.Copy
   
    Set oNewDoc = Documents.Add

    oNewDoc.Range.PasteAndFormat  16  'wdFormatOriginalFormatting
    sFileName = "Страница " & iPage & " документа «" & Mid(oMainDoc.Name,  1 , InStrRev(oMainDoc.Name, ".") -  1 ) & "»"
 
    oNewDoc.SaveAs oMainDoc.Path & Application.PathSeparator & sFileName & ".doc", AddToRecentFiles:=False, FileFormat:=wdFormatDocument97

    oNewDoc.Close True
 
    Set oRng = oRng.GoToNext( 1 ) 'wdGoToPage
  Loop

  Application.ScreenUpdating = True
  MsgBox "Сохранено в файлы " & iPage & " страниц." & vbCr & _
        "Папка сохранения: " & oMainDoc.Path & Application.PathSeparator, vbOKOnly + vbInformation, "Документы сохранены"
End Sub
  
    oNewDoc.Content.Delete
    oRng.Copy
    oNewDoc.Content.Paste
   
 
    sFileName = "Страница " & iPage & " документа (" & Mid(oMainDoc.Name,  1 , InStrRev(oMainDoc.Name, ".") -  1 ) & ")"
    oNewDoc.SaveAs oMainDoc.Path & Application.PathSeparator & sFileName & ".doc", AddToRecentFiles:=False ', FileFormat:=wdFormatDocument97
  Loop While iPage < cntp
 
  Set oRng = Nothing
  tmu = timeGetTime() - tm
  oNewDoc.Close wdDoNotSaveChanges
  Set oNewDoc = Nothing
  Application.ScreenUpdating = True
 
  tm = timeGetTime() - tm
  timeEndPeriod  1 
Debug.Print "Модифицированный = " & CStr(tm /  1000 ) & "(" & CStr(tmu /  1000 ) & ")"
  MsgBox "Сохранено в файлы " & iPage & " страниц." & vbCr & _
        "Папка сохранения: " & oMainDoc.Path & Application.PathSeparator, vbOKOnly + vbInformation, "Документы сохранены"
  Set oMainDoc = Nothing
End Sub
...
Рейтинг: 0 / 0
18.06.2010, 14:49
    #36694867
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Shocker.Pro,

Это макрос присваивает имя документу Письмо 1, письмо 2, письмо 3 и т.д.
А мне надо чтобы имя присваивалось Иванов, Петров, Сидоров. Эта информация из переменного поля при слиянии (ФИО в тексте)
...
Рейтинг: 0 / 0
18.06.2010, 14:58
    #36694895
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61Это макрос присваивает имя документу Письмо 1, письмо 2, письмо 3 и т.д.
Это макрос (точнее полтора макроса) я переоформил с помощью тэгов, так как вы поленились прочитать правила и сделать это самостоятельно.

Из макроса не следует, откуда брать поле "MERGEFIELD"
Так же из макроса неясно, где эксель и слияние, которые вы упомянули.
...
Рейтинг: 0 / 0
18.06.2010, 15:09
    #36694925
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Shocker.Pro,

Прошу прощения.
В экселе заносится информация из постановления.
Номер постановления, дата, номер уведомления, сумма, ФИО должника и т.д.
В ворде шаблон распоряжения.
При сливании меняются Номер постановления, дата, номер уведомления, сумма, должник и т.д.
Потом каждое распоряжение сохраняют (команда слияния "Изменить часть писем"). Имя распоряжения присваивают ФИО должника. Сохраняют вручную. Как сделать так чтобы после нажатия изменить часть писем имя документа было ФИО должника.
Могу прикрепить экселевскую таблицу и вордовский файл.
...
Рейтинг: 0 / 0
18.06.2010, 15:17
    #36694935
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Вы фамилию хотите брать из ворда или из экселя? На момент пересохранения страниц в ворде эта фамилия есть? Может из ворда ее брать?
Ну приложите вордовый файл для начала....
...
Рейтинг: 0 / 0
18.06.2010, 15:20
    #36694943
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Shocker.Pro,
...
Рейтинг: 0 / 0
18.06.2010, 15:21
    #36694944
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61,
...
Рейтинг: 0 / 0
18.06.2010, 15:24
    #36694953
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
После запуска функции слияния у нас в ворде 2 распоряжения.
Когда мы нажимаем "изменить часть писем" надо чтобы в новом вородвском документе имя было "Иванов"
Когда мы нажмем второй раз "изменить часть писем" надо чтобы имя было "Петров"
...
Рейтинг: 0 / 0
18.06.2010, 15:26
    #36694958
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61,

Фамилия должника берется из экселя.
...
Рейтинг: 0 / 0
18.06.2010, 15:29
    #36694968
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Куда жать-то?
я ж не телепат, выражайтесь внятно и с применением запятых.
...
Рейтинг: 0 / 0
18.06.2010, 15:29
    #36694969
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61,

Мы в вордовском шаблоне нажимаем - сервис - письма и рассылки - слияние
Выбираем источник "это книга 1"
далее
далее
получаются два распоряжения
мы из листаем
в одном должник иванов
в другом петров
в первом распоряжении нажимаем "изменить часть писем" и получаем новый документ Письмо 1
А надо чтобы имя документа было Иванов
...
Рейтинг: 0 / 0
18.06.2010, 15:33
    #36694980
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61,

ФИО Должника, и другие данные переменные
...
Рейтинг: 0 / 0
18.06.2010, 15:40
    #36695000
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Слить удалось, но вот это я не понял, куда жать:
Lelik61в первом распоряжении нажимаем "изменить часть писем"
Замороченно, конечно, вы придумали, ну да ладно.

Я предлагаю никак не завязываться на эксель, в результирующем документе он уже вроде никаким местом.
Макрос, разбивающий на страницы у вас уже есть. Просто поиском (методом Find.Execute) находите фамилию и используете ее как имя файла. Можно искать по контексту "Должник - ", можно ввести в изначальный шаблон спецсмволы - к примеру заключить поле с фамилией в знаки "#", а потом их удалить.
...
Рейтинг: 0 / 0
18.06.2010, 15:41
    #36695004
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Можно вообще в шаблоне забить фамилию первым словом, брать первое слово и потом его стирать.
...
Рейтинг: 0 / 0
18.06.2010, 15:48
    #36695025
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Shocker.Pro,

Просто дело в том что количество распоряжений большое.
После завершения слияния когда они в одном документе (предположим 200 шт.) мы их распечатываем, а потом разбиваем постранично (т.к. одно распоряжение одна страница) и присваиваем имена. А имя в тексте есть. Как бы это автоматизировать, чтобы одно распоряжение сохранялись в одном файле, а имя файла было ФИО должника.
...
Рейтинг: 0 / 0
18.06.2010, 15:52
    #36695041
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61Просто дело в том что количество распоряжений большое.
После завершения слияния когда они в одном документе (предположим 200 шт.) мы их распечатываем, а потом разбиваем постранично (т.к. одно распоряжение одна страница) и присваиваем имена. А имя в тексте есть. Как бы это автоматизировать, чтобы одно распоряжение сохранялись в одном файле, а имя файла было ФИО должника.
Кажется я вам уже ответил....
...
Рейтинг: 0 / 0
18.06.2010, 15:53
    #36695042
Lelik61
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61,
Изначально информация вносилась вручную в эксель, а потом вручную все это вносилось в ворд.
Два раза одно и тоже делали.
Теперь слиянием быстро формируем распоряжения, только долго их сохраняем((((((((((
...
Рейтинг: 0 / 0
18.06.2010, 15:57
    #36695054
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Макрос который задает имя по умолчанию при сохранении вордовского документа
Lelik61Lelik61,
Изначально информация вносилась вручную в эксель, а потом вручную все это вносилось в ворд.
Два раза одно и тоже делали.
Теперь слиянием быстро формируем распоряжения, только долго их сохраняем((((((((((
http://www.sql.ru/forum/actualthread.aspx?tid=768140#8964804
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Макрос который задает имя по умолчанию при сохранении вордовского документа / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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