我有一个适用于Outlook的宏,它将在其中创建新电子邮件。 但是,我需要从特定的本地文件夹附加一些文件,并且附加的文件在文件命名(FILE1_ddmmyyyy)上始终具有当前日期。 例如:FILE1_30102018.xlsx,FILE2_30102018.xlsx
下面是我现在拥有的代码,我不知道如何自动附加文件名为“ * 30102018.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:\Attachments\FILE1_30102018.xlsx")
.Importance = olImportanceHigh
.Display
End With
Set obApp = Nothing
Set NewMail = Nothing
End Sub
答案 0 :(得分:0)
要使用通配符获取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