用于根据文件名字符串的多文件附件的Outlook VBA宏



我有一个用于Outlook的工作宏,它将在其中创建新的电子邮件。然而,我需要一些需要从特定的本地文件夹附加的文件,并且附加的文件在文件命名上总是有当前日期(FILE1_ddmmyyyy(。示例:FILE1_30102018.xlsx、FILE2_30102018..xlsx

以下是我现在的代码,我不知道如何自动附加文件名为"*330102018.xlsx"的

Sub FileDraft()
Dim obApp As Object
Dim NewMail As MailItem
'Format(Date, "ddmmyyyy")
Dim szTodayDate As String
szTodayDate = Date
Dim szNextDate As String
Dim LWeekday As Integer
LWeekday = Weekday(szTodayDate, vbSunday)
If LWeekday = "5" Then
szNextDate = DateAdd("d", 3, szTodayDate)
Else
szNextDate = DateAdd("d", 1, szTodayDate)
End If
Dim szNextDatereformat As String
szNextDatereformat = Format(szNextDate, "ddmmyyyy")
Set obApp = Outlook.Application
Set NewMail = obApp.CreateItem(olMailItem)
'You can change the concrete info as per your needs
With NewMail
.Subject = "FILES_" & szNextDatereformat
.To = "Recipient_Address"
.CC = "contacts_on_the_CC"
.Body = "messageBodyhere"
.Attachments.Add ("C:AttachmentsFILE1_30102018.xlsx")
.Importance = olImportanceHigh
.Display
End With
Set obApp = Nothing
Set NewMail = Nothing
End Sub

要使用通配符获取VBA中的文件列表,可以使用Dir命令。

当使用参数调用Dir时,将开始新的搜索,使用该参数作为文件名模式(非常类似于在命令提示符下发出Dir(。它返回与名称匹配的文件名(不包含路径(。

在不带参数的情况下调用Dir时,它将继续搜索并返回下一个文件。如果找不到(更多(文件,则返回空字符串。

所以,像一样更改代码

Const path = "C:Attachments"
With NewMail 
...
dim pattern As String, fileName As String
pattern = path & "*" & szNextDatereformat & ".*"
fileName = Dir(pattern)
Do While fileName <> ""
.Attachments.Add path & fileName 
fileName = Dir
Loop
...
end With

最新更新