2012-05-17 32 views
-1

我想从一个文件夹中发送一些文件到一个固定的电子邮件地址,这些文件需要在个别电子邮件中发送,文件名是随机的。展望VB宏 - 我做错了什么?

本主题让我开始:

Send individual emails to predefined set of people with all files in a folder

我改变了代码,以满足我的需要一点点,但是当我运行宏它未发送的文件。我相信它是一个简单的错误,但我的知识是有限的!

这是我的代码:

Option Explicit 

Const SOURCE_FOLDER As String = "C:\Users\Me\Desktop\Test" 
Const RECIP_A As String = "[email protected]" 
Const EMAIL_BODY As String = "Please find attached file. Thanks and Regards, ABC" 

Sub SendPDFs() 
    On Error GoTo ErrorHandler 

    Dim fileName As String 
    fileName = Dir(SOURCE_FOLDER) 

    Do While Len(fileName) > 0 
     Call CreateEmail(SOURCE_FOLDER & fileName) 
     fileName = Dir 
    Loop 

ProgramExit: 
    Exit Sub 
ErrorHandler: 
    MsgBox Err.Number & " - " & Err.Description 
    Resume ProgramExit 
End Sub 

Function CreateEmail(fileName As String) 
    Dim olApp As Outlook.Application 
    Dim msg As Outlook.MailItem 

    ' create email 
    Set olApp = Outlook.Application 
    Set msg = olApp.CreateItem(olMailItem) 

    ' set properties 
    With msg 
     .Body = EMAIL_BODY 
     .Recipients.Add (RECIP_A) 

     .Attachments.Add fileName 
     .Send 
    End With 
End Function 
+0

代码似乎没有问题。顺便说一句你有没有添加对Outlook对象库的引用? –

回答

1

啊!与代码的唯一问题是

常量SOURCE_FOLDER的String = “C:\用户\我\桌面\测试”

改变,要

Const SOURCE_FOLDER As String = "C:\Users\Me\Desktop\Test\" 

现在尝试它。我试过并测试过它,它工作。

此外,请确保您已添加对Outlook对象库的引用。

+0

它的工作原理!非常感谢你:)我如何设置电子邮件的子目标总是“谢谢你”? –

+0

在这行下面'.Body = EMAIL_BODY'添加这行'.Subject =“Thank You”' –