2013-08-29 54 views
0

我試圖找出如何保持郵件進入一個文件夾中放置一個偵聽器文件夾的數量的軌道,但它是不工作的權利。這是我所擁有的,但由於某些原因,當我將多個電子郵件拖到該文件夾​​時,所選數量不正確。基本上我正在嘗試使用該文件夾的是將所有拖到其中的郵件項目名稱更改爲相同的名稱。所以,我需要能夠有一種方法來引用。我想我可以用選擇這樣做,但我不知道那些被拖動的項目。有任何想法嗎??謝謝!這裏是我的代碼:聽多個項目被拖入文件夾 - Outlook中

Private WithEvents MatchTicketNumberItems As Outlook.Items 

Private Sub Application_Startup() 
    Dim olApp As Outlook.Application 
    Dim objNS As Outlook.NameSpace 
    Set olApp = Outlook.Application 
    Set objNS = olApp.GetNamespace("MAPI") 

    'Specify folders that will have listeners on them 
    Set MatchTicketNumberItems = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("MatchTicketNumber").Items 
End Sub 

Private Sub MatchTicketNumberItems_ItemAdd(ByVal item As Object) 
    Dim selected As Integer 
    Dim objSelection As Outlook.Selection 
    Set objSelection = Application.ActiveExplorer.Selection 
    selected = objSelection.count 

    'Do stuff 
End Sub 

回答

0

記住MAPI事件是隻對UI的目的,並可以(而且)在重負載下跳過。

話雖這麼說,你可以更具體一點嗎?你拖動了多少物品,事件處理程序觸發了多少次?

而且,你爲什麼用Explorer.Selection工作?如果直接創建項目,則當前選擇將無關緊要。

+0

例如:我的收件箱中有3封郵件。其中一個有我想要另外兩個的主題。所以我想他們一起移動到「MatchTicketNumber」文件夾,該文件夾會遍歷他們(每個OBJ在objSelection等...),找到與某個對象我在找項目,然後複製這受制於其他人。然後,一旦它完成了,我希望所有的項目都被移回到我的主收件箱。奇怪,我知道。但我需要一些方法來引用所有這些文件,我認爲我可以通過循環選擇來做到這一點。無關緊要的是什麼意思? – gcc

+0

那麼確切的問題是什麼?你是說你有3項選擇,但選擇計數返回一個不同的數字?請記住,當ItemAdd事件觸發時,該項目已經位於新文件夾中,因此它將從選擇中消失,除非使用複製(Ctrl +拖動)。 –

+0

它看起來像我所需要做的就是像你說的那樣按住Ctrl鍵,以便項目保持在選擇狀態。先生非常感謝您! – gcc

0

早期的答案解決了問題,但你可以嘗試這種方式,它可以自動移動到該文件夾​​MatchTicketNumber。

Private Sub MatchTicketNumberItems_ItemAdd(ByVal item As Object) 
    Dim objNS As Outlook.Namespace 
    Dim i As Long 
    ' Do Stuff 
    item.Save  
End Sub 


Sub Process_Selection_Multiple_MatchTicketNumber()  
    Dim objNS As Outlook.Namespace 
    Dim targetFolder As MAPIFolder 
    Dim selectionIndex As Long 
    Dim itm As Object 

    Set objNS = Application.GetNamespace("MAPI") 
    Set targetFolder = objNS.GetDefaultFolder(olFolderInbox).Parent.Folders("MatchTicketNumber") 

    For selectionIndex = 1 To ActiveExplorer.Selection.count 
     Set itm = ActiveExplorer.Selection(selectionIndex) 
     itm.Move targetFolder 
    Next 
End Sub 
相關問題