![[identity profile]](https://www.dreamwidth.org/img/silk/identity/openid.png)
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Сообщнике, помогите!
Есть excel список с параметрами контрагента ( название, инфа для шаблона, имя файла). Есть шаблон word, по которому нужно для каждого клиента сформировать письмо и сохранить отдельным файлом.
MailMerge делает половину работы, создает письмо для каждого клиента, но все в одном файле. Есть возможность разделить этот файл и сохранить это отдельными файлами с наименованием по шаблону?
Есть excel список с параметрами контрагента ( название, инфа для шаблона, имя файла). Есть шаблон word, по которому нужно для каждого клиента сформировать письмо и сохранить отдельным файлом.
MailMerge делает половину работы, создает письмо для каждого клиента, но все в одном файле. Есть возможность разделить этот файл и сохранить это отдельными файлами с наименованием по шаблону?
no subject
Date: 2012-09-27 06:29 am (UTC)P.S.: в свое время, у меня тоже встала такая задача - надо было формировать файлы задач на день по шаблонам и рассылать письма с каждому сотруднику из разных офисов. Потратил где-то 2-3 дня - написал программку-скрипт. Профит! Использование программки позволило сократить первоначальное затрачиваемое время в разы. =)
no subject
Date: 2012-09-27 07:21 am (UTC)no subject
Date: 2012-09-27 07:23 am (UTC)no subject
Date: 2012-09-27 07:29 am (UTC)сохранить их по отдельности оно само не может, но есть кучи готового VBA кода, например :
Sub Test()
Dim actpath As String, Dateiname As String
Const path As String = "C:\EigeneDateien\" 'Pfad anpassen
On Error GoTo 0
'Application.ScreenUpdating = False 'Bildschirmanzeige etc
'Application.Visible = False
Dim LetzterRec As Long
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
LetzterRec = Word.ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
With ActiveDocument.MailMerge
.DataSource.ActiveRecord = wdFirstRecord
Do
If .DataSource.ActiveRecord > 0 Then
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
actpath = path & .DataFields("LG") & "\" 'Der aktuelle Pfad wird zusammengesetzt aus path und dem Inhalt des Datenfeldes "LG"
Dim fs As Object
Set fs = CreateObject("Scripting.FileSystemObject")
If fs.folderexists(actpath) = False Then MkDir (actpath) 'Wenn der Pfad noch nicht existiert wird er jetzt erstellt
.FirstRecord = .ActiveRecord
.LastRecord = .ActiveRecord
Dateiname = actpath & _
.DataFields("Name").Value & ", " & _
.DataFields("Vorname").Value & ".doc 'Dateiname = Name, Vorname.doc
End With
.Execute Pause:=False 'erstellt Document
ActiveDocument.SaveAs FileName:=Dateiname 'Speichern unter Dateiname
ActiveDocument.Close False
End If
If .DataSource.ActiveRecord < LetzterRec Then
.DataSource.ActiveRecord = wdNextRecord
Else
Exit Do
End If
Loop
End With
MsgBox ("Ready")
Application.Visible = True
Application.ScreenUpdating = True
End Sub
no subject
Date: 2012-09-27 07:28 am (UTC)no subject
Date: 2012-09-27 07:25 am (UTC)no subject
Date: 2012-09-27 07:28 am (UTC)Но... скрипты все-таки создавать придется. Задачка у вас не совсем универсальная.
Лучше б зашли на фрилансру и за "копейку" решили бы свою проблемку. Серьезно.
no subject
Date: 2012-09-27 07:37 am (UTC)no subject
Date: 2012-09-27 05:55 pm (UTC)"Знал бы прикуп", нашел бы за пару минут :)
Подобное же услышал сегодня от своего оракл-девелопера - "фигня вопрос, за пару минут нагуглю".
P.S.: кто в теме вопроса, находит сразу и после мелких допилок уже все ок.
no subject
Date: 2012-09-28 05:23 am (UTC)no subject
Date: 2012-09-28 01:29 pm (UTC)no subject
Date: 2012-10-01 06:34 am (UTC)no subject
Date: 2012-10-01 03:00 pm (UTC)P.S.: если по делу, то такое на фрилан.сру можно заказать в 500 рублев :)
Сам заказываю иногда.
no subject
Date: 2012-10-01 08:05 pm (UTC)