我试图在Outlook中获取一个VBA宏,它将保存电子邮件对特定文件夹的附件(每月更改一次),并将收到的上个月的YYYYMM添加到文件名中。
Outlook规则确定电子邮件标题包含来自某人的“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
如何从标题中删除NTMR并将其放在文件名中?
我有另一个宏在电子邮件之前设置文件夹,因此我们不需要创建另一个文件夹
答案 0 :(得分:3)
主题行上的示例 Here is the NTMR file for you
按空格字符 (" ")
代码示例
Sub Example()
Dim Item As Outlook.mailitem
Set Item = ActiveExplorer.Selection.Item(1)
Debug.Print Item.subject ' Print on Immediate Window (Ctrl+G)
Item.subject = Split(Item.subject, " ")(3)
Debug.Print Item.subject ' Print on Immediate Window (Ctrl+G)
End Sub
您的主题= (Here)(1)
(is)(2)
(the)(3)
{{ 1}} (NTMR)(4)
(file)(5)
(for)(6)
现在 (you)(7)
分配给字符串变量
Split(subject line), "space")(3)
将 Dim FileName As String
FileName = Split(Item.subject, " ")(3)
替换为 objAtt.DisplayName
FileName
默认情况下,或者当Limit等于-1时,Split函数会在每次出现分隔符字符串时拆分输入字符串,并返回数组中的子字符串。
当Limit参数大于零时,Split函数会在分隔符的第一个 Limit-1 出现处拆分字符串,并返回一个包含结果子字符串的数组。
例如,Dim FileName As String For Each objAtt In itm.Attachments objAtt.SaveAsFile saveFolder & "\" & _ dateFormat & "\" & _ "Source Files" & "\" & FileName & dateFormat Next
,
而Split("a:b:c", ":") returns the array {"a", "b", "c"}
。
要上个月尝试 DateAdd Function
实施例
Split("a:b:c", ":", 2) returns the array {"a", "b:c"}
<子> 在其他环境中值得探索的一些有用日期函数包括
Option Explicit Public Sub Example() Dim PrevMonth As String PrevMonth = Format(DateAdd("m", -1, Date), "yyyymm") Debug.Print PrevMonth End Sub
,DateDiff
,DatePart
,日,月,年和DateSerial
。IsDate
(检查字符串是否为有效日期)对IsDate
之类的内容特别有用,您可能希望强制用户在某个特定日期输入有效日期文本框。 子> 的