2012-12-04 67 views
2

之外的其他文件夾我想將所有電子郵件(除最近的電子郵件外)從一個文件夾移動到另一個文件夾。下面的代碼會移動除一封電子郵件外的所有郵件,但不會收到最後收到的郵件有關如何修改它的任何建議?我必須參考.ReceivedTime來給它一個時間參考嗎?提前致謝!如何將所有電子郵件移動到除最近的

For i = objstartFolder.Items.Count - 1 To 0 Step -1 

    With objstartFolder.Items(2) 

     On Error Resume Next 

       .Move objMoveFolder 

    End With 

通過我已經順便也試過

For i = objstartFolder.Items.Count To 1 Step -1 
For i = 1 To objstartFolder.Items.Count Step 1 
For i = 0 To objstartFolder.Items.Count -1 Step 1 
+1

會不會有其他類型的項目的文件夾中? - 並非所有項目都必須是郵件項目。 'folder.Items'檢索項目的順序並不遵循任何時間順序,因此您必須遍歷所有項目,找到最新項目,然後移動所有項目。 –

+0

@TimWilliams - 謝謝,我以爲它不能按時間順序運行。關於如何編寫你正在談論的循環的任何想法? – Brackers

回答

0

嘗試先進行排序,然後刪除。

objstartFolder.Items.Sort 「接收」,假

有關示例見http://msdn.microsoft.com/en-us/library/aa163981(v=office.10).aspx

編輯2015年02 16

我原本直接排序的文件夾中的項目。 如果它的工作將是不可靠的真/假是一樣的

Sub SortByReceived_Move() 

    Dim myNameSpace As Namespace 
    Dim myFolder As folder 
    Dim myMoveToFolder As folder 
    Dim myItems As Items 
    Dim j As Long 

    Set myNameSpace = Application.GetNamespace("MAPI") 
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Folders("@Play") 
    Set myMoveToFolder = myFolder.Folders("@Test") 

    Set myItems = myFolder.Items 

    myItems.sort "Received", True 
    Debug.Print myItems(1).Subject & " - " & myItems(1).ReceivedTime 

    For j = myItems.count To 2 Step -1 
     Debug.Print myItems(j).Subject & " - " & myItems(j).ReceivedTime 
     myItems(j).Move myMoveToFolder 
    Next j 

ExitRoutine: 
    Set myNameSpace = Nothing 
    Set myFolder = Nothing 
    Set myMoveToFolder = Nothing 
    Set myItems = Nothing 

End Sub 

編輯2015年02月底16

+0

這將不起作用,因爲您使用多點符號並且Items集合已排序並立即被丟棄。下次您調用MAPIFolder.Items時,您將得到一個全新的COM對象,該對象不知道以前的對象。 –

0

首先,不使用多點符號,尤其是在一個循環 - 每個「」將返回一個全新的COM對象。在對Items集合進行排序和循環之前,請緩存Items集合。您可能還想先限制收集。


Items = objstartFolder.Items; 
Items.Restrict("[ReceivedTime] >= '2013-01-01' "); 
Items.Sort("ReceivedTime"); 
for (int i=Items.Count; i >= 1; i--)< 
{ 
    Item = Items.Item(i); 
    ... 
    Item.Move(SomeOtherfolder); 
} 
相關問題