我的Outlook宏一次工作,然後停止。當它解析時,宏會引發錯誤「編譯錯誤:變量未定義」。看起來宏不知道該文件夾存在。我將代碼截至最低限度,這是一個可重複的問題。該宏將識別標準文件夾,如JUNK和DRAFTS,但不是PROCESSED_FOLDERS。我嘗試重命名Processed_Folders以及使用不同的名稱創建一個新文件夾。沒有快樂。Outlook vba未找到現有文件夾
文件夾結構:
[email protected]
Inbox
Drafts
Sent
Trash
Junk
Processed_Reports
Outbox
Sync Issues1 (This computer only)
SearchFolders
CODE:
Sub testfforfolder()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
On Error GoTo xyz
Set olFolder = olFolder.Folders("Processed_Reports")
MsgBox "Folder Exists" ' This line works if I use DRAFTS or JUNK
Exit Sub
xyz:
MsgBox ("Cannot find Folder") ' I get here if I use PROCESSED_REPORTS
Exit Sub
End Sub
(1)強調了錯誤「無法定義的變量」什麼線? (2)您的代碼依賴於包含默認收件箱的「[email protected]」。這是真的?在我的系統上,默認收件箱位於「Outlook數據文件」中。 –
在本答案開頭,https://stackoverflow.com/a/12146315/973283,有一個宏可以幫助確認問題的原因。嘗試'設置oFolder = Session.Folders(「[email protected]」)。文件夾(「收件箱」)' –
此腳本引發「找不到文件夾」消息框警報。在原始腳本中,INBOX這個單詞被突出顯示爲一行,其內容如下:olm.Move Inbox.Folders(「Processed_Reports」)[注意:olm是DIM olm As Outlook.MailItem]在掙扎之後,我將問題隔離爲不識別文件夾。 –