매일 2 개월 이상 된 이메일을 매월 보관해야합니다. 내 문제는 오늘이 01 또는 02.12.2016 인 경우 현재 - 11.2016 이전의 달에 이메일을 이동해야합니다. 이메일 날짜가 T-2이고 전자 메일 월이 현재가 아니라면 현재 달 이전의 달에있는 전자 메일을 이동하고 현재 달 보관소로 이동하는 경우 코드가 올바르지 않습니다. 어떤 도움을 환영합니다, 감사합니다.메일을 월간 아카이브에 복사
Sub Archive_Outlook_eMails_To_Backup_PST_Folder()
Dim SourceFolder As Outlook.MAPIFolder, DestFolder As Outlook.MAPIFolder
Dim MailItem As Outlook.MailItem
Dim SourceMailBoxName As String, DestMailBoxName As String
Dim Source_Pst_Folder_Name As String, Dest_Pst_Folder_Name As String
Dim MailsCount As Double, NumberOfDays As Double
Dim a As Date
a = Now()
Dim b As String
b = Format(a, "mmmm")
Dim c As String
c = Format(a, "yyyy")
Dim nam As String
nam = "Archive " & b & " " & c
NumberOfDays = 2
Source_Pst_Folder_Name = "Inbox"
Set SourceFolder = Session.Folders("Mailbox - Share ALL").Folders("Inbox").Folders("0.Archive")
DestMailBoxName = nam
Dest_Pst_Folder_Name = "0.Archive"
Set DestFolder = Outlook.Session.Folders(DestMailBoxName).Folders(Dest_Pst_Folder_Name)
MailsCount = SourceFolder.Items.Count
While MailsCount > 0
Set MailItem = SourceFolder.Items.Item(MailsCount)
If VBA.DateValue(VBA.Now) - VBA.DateValue(MailItem.ReceivedTime) >= NumberOfDays Then
Dim myCopiedItem As Outlook.MailItem
Set myCopiedItem = MailItem.Copy
myCopiedItem.Move DestFolder
End If
MailsCount = MailsCount - 1
Wend
MsgBox "Mailes in " & Source_Pst_Folder_Name & " are Processed"
End Sub
을 (-2 올바른 폴더에 도착합니다) 왜 누군가는해야합니까? _ "모든 희미한 부분을 코드 주위가 아닌 맨 위에 놓습니다."_ – SBF
이것은 VBA의 우수 사례입니다. 코드 주위에 있다면, 그들이있는 곳을 많이 생각하고 찾아야합니다. 그리고 그들은 모두 즉시 초기화됩니다. 조건에 있는지 여부는 중요하지 않습니다. – Vityata
도움을 주셔서 감사합니다. 동료들이 코드의 모든 모듈이 무엇을하는지 알기에 어둡습니다. 그렇게 간단합니다. – wittman