Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将文件另存为PDF,然后作为附件发送_Vba_Excel - Fatal编程技术网

Vba 将文件另存为PDF,然后作为附件发送

Vba 将文件另存为PDF,然后作为附件发送,vba,excel,Vba,Excel,现在我有一张名单,上面写着一个叫做“gebruikers”的人。每个用户在此列表中都有一个电子邮件地址 我现在要做的是自动浏览该列表,并将列表中的每个人的文件保存为PDF格式 有没有可能像现在这样保存文件,然后自动将该文件发送到他们的电子邮件地址 这是我现在的代码: Public Sub pdfopslag() Dim myCell As Range Dim valRules As Range path = Range("

现在我有一张名单,上面写着一个叫做“gebruikers”的人。每个用户在此列表中都有一个电子邮件地址

我现在要做的是自动浏览该列表,并将列表中的每个人的文件保存为PDF格式

有没有可能像现在这样保存文件,然后自动将该文件发送到他们的电子邮件地址

这是我现在的代码:

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
将其删除。