2017-07-04 83 views
0

從上個月起收件箱中的子文件夾中查找所有電子郵件(按文件夾名稱,即電子郵件ID),然後按主題將其粘貼到各自的文件夾中。在所有收件箱子文件夾中搜索包含一個電子郵件ID的郵件

我停留在代碼NS = OlApp.GetNamespace(「MAPIFolder」)也與(「MAPI」),以及對象變量的未設置錯誤顯示

Dim OlApp As Outlook.Application 
Set OlApp = New Outlook.Application 
Set OlApp = CreateObject("Outlook.Application") 
Dim fldrpath As String 
Dim fldername As String 
Dim oMail As Object 
fldrpath = "\data\EMAILS\" & fldrname 
Dim NS As Namespace 
Dim Folder As MAPIFolder 
Dim sName As String 
Dim dtdate As String 
Dim Inbox As MAPIFolder 
NS = OlApp.GetNamespace("MAPIFolder") 
Set Inbox = NS.GetDefaultFolder(olFolderInbox) 
For Each mysubFolders In Inbox.subFolders 
Set mysubfolder = Inbox.subFolders("PDI").Folders("OBU").Folders("DND") 
For Each mailItems In mysubfolder 
If oMail.Body = r Then 
Set mailItems = oMail 
sName = mailItems.Subject 
dtdate = mailItems.ReceivedTime 
Debug.Print fldrpath & sName 
mailItems.SaveAs fldrpath & sName, olMSG 
End If 
Next 
Set OlApp = Nothing 
Set mailItems = Nothing 
Next 
End Sub 
+0

應該很簡單。用您的代碼的當前狀態更新您的問題,以便我們知道從哪裏開始。 –

+0

我很高興聽到它的簡單,但目前我卡在這...請幫助。代碼更新問題 – sapana

+0

好的更新!現在請告訴我們你被困在哪裏,你爲什麼被卡住以及你試圖解決它的問題。 –

回答

1

第一個問題是這條線,缺少Set關鍵字:

設置NS = OlApp.GetNamespace( 「MAPIFolder」)

然後您訪問 「Inbox.subFolders」,但有一個文件夾對象上沒有這樣的屬性;這將是你想要的文件夾屬性集合。

您也沒有在循環中使用mysubFolders變量,因此整個代碼塊都會失敗。也沒有明確設置您試圖從mysubfolder對象迭代的mailItems對象。

我會繼續,但坦率地說,整個方法需要重寫。重點確保您正確地聲明和設置正確的變量到正確的屬性或對象。

+0

非常感謝您的迴應......!我試過另一種方式來使用Outlook中的即時搜索來執行此任務。 – sapana

相關問題