【发布时间】:2019-09-03 10:11:09
【问题描述】:
我已经构建了一些 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`
【问题讨论】:
标签: excel vba email pdf outlook