Как отправить PDF по электронной почте, сгенерированный из Excel VBA - PullRequest
0 голосов
/ 12 апреля 2019

Я создал сценарий VBA для преобразования документа цитаты из Excel в PDF-файл и последующей отправки его по электронной почте на указанный адрес электронной почты.

В настоящее время сценарий работает и может создать PDF-документ и сохранить его в указанном мною месте, но вторая часть этого документа заключается в создании электронного письма и подготовке его к отправке.работа.

Мне нужно это, чтобы я мог процитировать клиентов, но также сохранить копию цитаты в файле.Я мог бы просто прикрепить данный PDF-файл из файла, но так как он будет использоваться не только мной, я хотел бы удалить этот шаг.

Я пробовал приведенный ниже код, и генерация PDF отлично работает как в этом коде, так и изолированно.Ошибка, которая появляется, является Средой выполнения 1004, которая размещает эту часть кода как содержащую ошибку:

Worksheets("Email").Range("A1:g70").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"S:\PDF Quotes\" & Format(Now, "DDMMYY-") & Worksheets("Email").Range("c12") & ".pdf", OpenAfterPublish:=True

Это несмотря на то, что эта часть работает в изоляции и все еще генерирует PDF.Пожалуйста, смотрите мой полный код ниже:

Sub SetEmailToPDF()
ChDir "S:\PDF Quotes"
Worksheets("Email").Range("A1:g70").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"S:\PDF Quotes\" & Format(Now, "DDMMYY-") & Worksheets("Email").Range("c12") & ".pdf", OpenAfterPublish:=True

Dim OutLookApp As Object
Dim OutLookMailItem As Object
Dim myAttachments As Object

Set OutLookApp = CreateObject("Outlook.application")
Set OutLookMailItem = OutLookApp.CreateItem(0)
Set myAttachements = OutLookMailItem.Attachments

With OutLookMailItem
.To = "test.user@company.com"
.Subject = "Test Quote"
.Body = "this is a test email"
myAttachments.Add "S:\PDF Quotes\" & Format(Now, "DDMMYY-") & Worksheets("Email").Range("c12") & ".pdf"
'.send
.Display
End With

Set OutLookMailItem = Nothing
Set OutLookApp = Nothing

End Sub

Как объяснить, что я ожидаю увидеть в следующем:

1. PDF named 1`20419-companyname.pdf` is created and saved into file `S:\PDF Quotes\`
2. `120419-companyname.pdf` to be picked up and attached to an email in Outlook ready to send to `test.user@company.com`

1 Ответ

2 голосов
/ 12 апреля 2019

Я попытался протестировать ваш код выше и столкнулся с проблемами с кодом здесь:

myAttachments.Add "S:\PDF Quotes\" & Format(Now, "DDMMYY-") & Worksheets("Email").Range("c12") & ".pdf"

Я думаю, это потому, что myAttachments = OutLookMailItem.Attachments и "OutLookMailItem" уже учтены, поскольку вы используете это в своем операторе With.

Так что если вы измените «myAttachments.Add» на «.Attachments.Add» в приведенном выше коде, это должно работать. РЕДАКТИРОВАТЬ: как это должно выглядеть ниже:

.Attachments.Add "S:\PDF Quotes\" & Format(Now, "DDMMYY-") & Worksheets("Email").Range("c12") & ".pdf"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...