Я создал файл Excel, который использовал для создания слияния в Word, который, в свою очередь, содержит код VBA для создания документов PDF и Word. Сейчас код запускается и создает файлы в сгибах, определенных для Word и PDF, однако я не могу понять, как сохранить документы PDF / Word в папке, которая определяется значением, которое находится в файле Excel.
Я имею в виду, что если у меня есть 10 записей и в столбце K указан человек, который должен получить файлы. Это имя папки, которую я хочу создать. Таким образом, для каждой записи, в которой «Ron» указан в столбце K, файлы должны иметь значение go. Нужно ли мне определять каждого человека, который фактически является «папкой» в коде? И если да, то как?
Код, как он существует сейчас:
Option Explicit
Const PDF_SAVED As String = "C:\Leader Folders\2019 TR Statements\Ron - TEST ENVIRONMENT\PDFs\"
Const WORD_SAVED As String = "C:\Leader Folders\2019 TR Statements\Ron - TEST ENVIRONMENT\Word Docs\"
Const SOURCE_FILE_PATH As String = "C:\Leader Folders\2019 TR Statements\Ron - TEST ENVIRONMENT\Mail Merge Source Data Ron TEST.xlsx"
Sub TestRun()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim MainDoc As Document, TargetDoc As Document
Dim dbPath As String
Dim recordNumber As Long, totalRecord As Long
Set MainDoc = ActiveDocument
With MainDoc.MailMerge
.OpenDataSource Name:=SOURCE_FILE_PATH, sqlstatement:="SELECT * FROM [Sheet1$]"
totalRecord = .DataSource.RecordCount
For recordNumber = 1 To totalRecord
With .DataSource
.ActiveRecord = recordNumber
.FirstRecord = recordNumber
.LastRecord = recordNumber
End With
.Destination = wdSendToNewDocument
.Execute False
Set TargetDoc = ActiveDocument
TargetDoc.SaveAs2 WORD_SAVED & .DataSource.DataFields("Employee_Name").Value & ".docx", wdFormatDocumentDefault
TargetDoc.ExportAsFixedFormat PDF_SAVED & .DataSource.DataFields("Employee_Name").Value & ".pdf", exportformat:=wdExportFormatPDF
TargetDoc.Close False
Set TargetDoc = Nothing
Next recordNumber
End With
Set MainDoc = Nothing
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Спасибо за любую помощь, которую вы можете предложить. :)