Vba 将文件另存为PDF,然后作为附件发送
现在我有一张名单,上面写着一个叫做“gebruikers”的人。每个用户在此列表中都有一个电子邮件地址 我现在要做的是自动浏览该列表,并将列表中的每个人的文件保存为PDF格式 有没有可能像现在这样保存文件,然后自动将该文件发送到他们的电子邮件地址 这是我现在的代码:Vba 将文件另存为PDF,然后作为附件发送,vba,excel,Vba,Excel,现在我有一张名单,上面写着一个叫做“gebruikers”的人。每个用户在此列表中都有一个电子邮件地址 我现在要做的是自动浏览该列表,并将列表中的每个人的文件保存为PDF格式 有没有可能像现在这样保存文件,然后自动将该文件发送到他们的电子邮件地址 这是我现在的代码: Public Sub pdfopslag() Dim myCell As Range Dim valRules As Range path = Range("
Public Sub pdfopslag()
Dim myCell As Range
Dim valRules As Range
path = Range("I21").Text
Set valRules = Evaluate(Range("A9").Validation.Formula1)
Application.ScreenUpdating = True
Worksheets("factuur").UsedRange.Columns("A:G").Calculate
For Each myCell In valRules
emailadres = Application.WorksheetFunction.VLookup(Sheets("factuur").Range("A9"), Sheets("Gegevens").Range("A1:G6"), 7, False)
Range("A9") = myCell
filename1 = Range("B18").Text
filename2 = Range("A8").Text
PDF_File = path & filename1 & " " & filename2 & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=PDF_File
On Error Resume Next
Set OutlApp = GetObject(, "Outlook.Application")
If Err Then
Set OutlApp = CreateObject("Outlook.Application")
IsCreated = True
End If
OutlApp.Visible = True
On Error GoTo 0
' Prepare e-mail with PDF attachment
With OutlApp.CreateItem(0)
' Prepare e-mail
.Subject = "test"
.To = emailadres
.Attachments.Add = PDF_File
' Try to send
On Error Resume Next
.Send
Application.Visible = True
If Err Then
MsgBox "E-mail was not sent", vbExclamation
Else
MsgBox "E-mail successfully sent", vbInformation
End If
On Error GoTo 0
End With
Next myCell
Set OutlApp = Nothing
End Sub
我只是不知道我需要在.attachments.add后面添加什么,因为现在它给出了一个错误440可能是@dwirony的重复项,这是文件本身我需要发送一个保存在同一宏中的文件有什么区别?保存文件后,创建新的outlook项目,附加文件,发送到电子邮件地址。冲洗并重复。我相信这是相同的过程:)您可以使用宏记录器查看代码保存为pdf的外观,然后您可以编辑类似于代码中的代码的代码,以“Exportas”范围name@Klaas在附加文件之前,您仍然需要将其保存在某个位置。如果附加并发送文件后不想保留该文件,可以使用
Kill
将其删除。