Я работаю с макросом vba, который отлично работает, но мне нужно сохранить документы как .pdf.Excel macro mailmerge - экспорт в pdf
Я ищу советы, но я не знаю, как их найти. В прошлый раз я нашел это решение: vba mail merge save as pdf , но я не знаю, примените его к моему макросу.
Вот мой код:
Sub RunMerge()
Dim wd As Object
Dim wdocSource As Object
Dim strWorkbookName As String
On Error Resume Next
Set wd = GetObject(, "Word.Application")
If wd Is Nothing Then
Set wd = CreateObject("Word.Application")
End If
On Error GoTo 0
Set wdocSource = wd.Documents.Open(ThisWorkbook.Path & "\" & "ArtSpecDatabase.docx")
strWorkbookName = ThisWorkbook.Path & "\" & ThisWorkbook.Name
wdocSource.MailMerge.MainDocumentType = wdFormLetters
wdocSource.MailMerge.OpenDataSource _
Name:=strWorkbookName, _
AddToRecentFiles:=False, _
Revert:=False, _
Connection:="Data Source=" & strWorkbookName & ";Mode=Read", _
SQLStatement:="SELECT * FROM `Sheet2$`"
With wdocSource.MailMerge
.Destination = wdSendToNewDocument
.SuppressBlankLines = True
With .DataSource
.FirstRecord = 1
.LastRecord = 1
End With
.Execute Pause:=False
End With
Dim PathToSave As String
PathToSave = ThisWorkbook.Path & "\" & "pdf" & "\" & Sheets("Sheet2").Range("B2").Value2 & ".docx"
If Dir(PathToSave, 0) <> vbNullString Then
wd.FileDialog(FileDialogType:=msoFileDialogSaveAs).Show
Else
wd.activedocument.SaveAs2 PathToSave, wdFormatDocumentDefault
End If
wd.Visible = True
wdocSource.Close savechanges:=False
wd.activedocument.Close savechanges:=False
Set wdocSource = Nothing
Set wd = Nothing
End Sub
Привет, спасибо за обновление. Я поместил ваш код в свой макрос, но он не запускается. Я получаю ошибку во время выполнения '5: Неверный вызов или аргумент процедуры. После отладки этой ошибки он показывает мне ошибку в строке кода: 'wd.ActiveDocument.ExportAsFixedFormat PathToSave, wdExportFormatPDF' Помогите мне, что случилось? – Jean
Попробуйте заменить 'wdExportFormatPDF' на 17. – DanL
Awesome !!! Спасибо. Теперь он работает;) – Jean