我试图在Outlook中获得一个VBA宏,它将保存电子邮件对特定文件夹的附件(每月更改),并将收到的前一个月的YYYYMM添加到文件名中 .
outlook规则标识电子邮件 Headers 包含来自某人的“NTMR” .
当它这样做时,它会运行脚本,将附件保存在文件夹中 .
因此,当宏识别收到的电子邮件的月份时,它会保存在落后一个月的文件夹中 . 例如:
在DD / 04/17上收到的电子邮件为“这里是您的NTMR文件”,它会将文件保存在201703父文件夹中的文件夹中作为NTMR - 201703
所以文件的路径将是C:\ Users \ alitalh \ Downloads \ Test \ 201703 \ Source Files \ NTMR 201703
我已经提出了follownig宏 - 请告诉我如何解决它?
Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim dateFormat As String
saveFolder = "C:\Users\alitalh\Downloads\Test"
dateFormat = Format(Now, "yyyymm" - 1, 1)
For Each objAtt In itm.Attachments
objAtt.SaveAsFile saveFolder & "\" & dateFormat & "\" & "Source Files" & "\" & objAtt.DisplayName & dateFormat
Set objAtt = Nothing
Next
End Sub
如何从 Headers 中删除NTMR并将其放在文件名中?
我有另一个宏在电子邮件之前设置文件夹,所以我们不需要创建另一个文件夹
1 回答
使用 MSDN Split Function
主题行上的示例 Here is the NTMR file for you 按空格字符 (" ") 拆分
代码示例
你的主题= (Here)(1) (is)(2) (the)(3) (NTMR)(4) (file)(5) (for)(6) (you)(7)
现在 Split(subject line), "space")(3) 在分配给字符串变量时
用 FileName 替换 objAtt.DisplayName
要上个月试试 DateAdd Function
例