2014-10-03 2 views
6

Ich versuche, eine E-Mail mit mehreren Anhängen über VBA und Outlook zu senden.mehrere Dateien anhängen, um E-Mails oder das gesamte Verzeichnis (VBA) zu senden

Der Code Ich arbeite, wenn ich den Pfad zu einem Anhang/Datei angeben, und ich kann auch mehrere Anhänge hinzufügen, wenn ich genau weiß, was sie sind, aber ich werde nicht vorwärts gehen - es wird verschiedene Zählungen sowie Dateinamen geben .

Ich würde gerne mit einem Platzhalter senden, wie in meinem Beispiel unten gezeigt, aber ich denke, ich muss eine Art Schleife verwenden, die auf ein Verzeichnis zeigt.

Ich habe eine Tonne nach einer Lösung gesucht, aber ich habe noch nichts gesehen, das mit meiner spezifischen Situation funktioniert.

 Private Sub Command22_Click() 
     Dim mess_body As String 
     Dim appOutLook As Outlook.Application 
     Dim MailOutLook As Outlook.MailItem 
     Set appOutLook = CreateObject("Outlook.Application") 
     Set MailOutLook = appOutLook.CreateItem(olMailItem) 

      Set appOutLook = CreateObject("Outlook.Application") 
      Set MailOutLook = appOutLook.CreateItem(olMailItem) 
      With MailOutLook 
      .BodyFormat = olFormatRichText 
      .To = "[email protected]" 
      .Subject = "test" 
      .HTMLBody = "test" 
      .Attachments.Add ("H:\test\Adj*.pdf") 
      '.DeleteAfterSubmit = True 
      .Send 
      End With 
      MsgBox "Reports have been sent", vbOKOnly 
     End Sub 
+0

Verwenden [DIR] (http://stackoverflow.com/questions/10380312/loop-through-files-in-a-folder-using-vba/10382861#10382861) –

+0

Vielen Dank für deine Antwort. Ich habe versucht. Attachments.Add Dir ("H: \ Test") und ich erhielt eine Fehlermeldung "Kann diese Datei nicht finden. Überprüfen Sie, dass der Pfad und der Dateiname korrekt sind". – gfuller40

Antwort

11

Ist das, was Sie versuchen? (Ungetestet)

Private Sub Command22_Click() 
    Dim mess_body As String, StrFile As String, StrPath As String 
    Dim appOutLook As Outlook.Application 
    Dim MailOutLook As Outlook.MailItem 

    Set appOutLook = CreateObject("Outlook.Application") 
    Set MailOutLook = appOutLook.CreateItem(olMailItem) 

    '~~> Change path here 
    StrPath = "H:\test\" 

    With MailOutLook 
     .BodyFormat = olFormatRichText 
     .To = "[email protected]" 
     .Subject = "test" 
     .HTMLBody = "test" 

     '~~> *.* for all files 
     StrFile = Dir(StrPath & "*.*") 

     Do While Len(StrFile) > 0 
      .Attachments.Add StrPath & StrFile 
      StrFile = Dir 
     Loop 

     '.DeleteAfterSubmit = True 
     .Send 
    End With 

    MsgBox "Reports have been sent", vbOKOnly 
End Sub 
+0

@Downvoter: Möchten Sie den Downvote erklären? –

+0

+1 Hmm, warum wurde das abgelehnt? –