仅保存今天的电子邮件
Save only emails of today
我正在 Outlook 2010 中创建一个将电子邮件保存到指定文件夹的宏。电子邮件将保存到由宏创建的文件夹中。我要考虑的问题是我在周末或下班时间收到电子邮件的时间。我注意到,当我在周末收到电子邮件并在周一重新打开 outlook 时,宏运行正常并执行它需要做的事情,但周末收到的电子邮件被放入周一文件夹。我怎样才能绕过这个问题。如果我在星期六收到一封电子邮件,我怎样才能拥有宏以便它也为星期六创建文件夹?这是我目前正在处理的代码。
Public Sub SaveMsgs(Item As Outlook.MailItem)
Dim sPath As String
Dim dtDate As Date
Dim sName As String
Dim enviro As String
Dim sSender As String
Dim strFolder As String
Dim strNewFolder As String
Dim save_to_folder As String
enviro = CStr(Environ("USERPROFILE"))
sName = Item.Subject
ReplaceCharsForFileName sName, "_"
sSender = Item.Sender
dtDate = Item.ReceivedTime
sName = sSender & " - " & sName & ".msg"
strNewFolder = Format(Date, "mm-dd-yyyy")
strFolder = "C:\IT Documents\" & strNewFolder & "\"
If Len(Dir(strFolder, vbDirectory)) = 0 Then
MkDir (strFolder)
End If
save_to_folder = strFolder
Item.SaveAs save_to_folder & sName, olMSG
End Sub
Private Sub ReplaceCharsForFileName(sName As String, _
sChr As String _)
sName = Replace(sName, "/", sChr)
sName = Replace(sName, "\", sChr)
sName = Replace(sName, ":", sChr)
sName = Replace(sName, "?", sChr)
sName = Replace(sName, Chr(34), sChr)
sName = Replace(sName, "<", sChr)
sName = Replace(sName, ">", sChr)
sName = Replace(sName, "|", sChr)
End Sub
您似乎打算使用 Item.ReceivedTime
来创建您的文件夹,但在将此值拉入 dtDate
后,它永远不会被使用。
也许可以尝试以下方法:
strNewFolder = Format(dtDate, "mm-dd-yyyy")
^^
我正在 Outlook 2010 中创建一个将电子邮件保存到指定文件夹的宏。电子邮件将保存到由宏创建的文件夹中。我要考虑的问题是我在周末或下班时间收到电子邮件的时间。我注意到,当我在周末收到电子邮件并在周一重新打开 outlook 时,宏运行正常并执行它需要做的事情,但周末收到的电子邮件被放入周一文件夹。我怎样才能绕过这个问题。如果我在星期六收到一封电子邮件,我怎样才能拥有宏以便它也为星期六创建文件夹?这是我目前正在处理的代码。
Public Sub SaveMsgs(Item As Outlook.MailItem)
Dim sPath As String
Dim dtDate As Date
Dim sName As String
Dim enviro As String
Dim sSender As String
Dim strFolder As String
Dim strNewFolder As String
Dim save_to_folder As String
enviro = CStr(Environ("USERPROFILE"))
sName = Item.Subject
ReplaceCharsForFileName sName, "_"
sSender = Item.Sender
dtDate = Item.ReceivedTime
sName = sSender & " - " & sName & ".msg"
strNewFolder = Format(Date, "mm-dd-yyyy")
strFolder = "C:\IT Documents\" & strNewFolder & "\"
If Len(Dir(strFolder, vbDirectory)) = 0 Then
MkDir (strFolder)
End If
save_to_folder = strFolder
Item.SaveAs save_to_folder & sName, olMSG
End Sub
Private Sub ReplaceCharsForFileName(sName As String, _
sChr As String _)
sName = Replace(sName, "/", sChr)
sName = Replace(sName, "\", sChr)
sName = Replace(sName, ":", sChr)
sName = Replace(sName, "?", sChr)
sName = Replace(sName, Chr(34), sChr)
sName = Replace(sName, "<", sChr)
sName = Replace(sName, ">", sChr)
sName = Replace(sName, "|", sChr)
End Sub
您似乎打算使用 Item.ReceivedTime
来创建您的文件夹,但在将此值拉入 dtDate
后,它永远不会被使用。
也许可以尝试以下方法:
strNewFolder = Format(dtDate, "mm-dd-yyyy")
^^