我必須在每月存檔中複製超過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
爲什麼要有人做呢? _「把所有的模糊放在頂部而不是圍繞代碼」_ – SBF
這是VBA中的一個好習慣。如果是在代碼周圍,你必須考慮它們的位置並尋找它們。他們都立即初始化,無論他們是否處於狀態並不重要。 – Vityata
感謝您的幫助,我讓同事們瞭解代碼的每個模塊都做了些什麼。這樣更簡單。 – wittman