Private OutlookApp, Nms As Object
Sub TestSub()
Dim Fold As Object
Set OutlookApp = GetObject(, "Outlook.Application")
Set Nms = OutlookApp.GetNamespace("MAPI")
Set Fold = outlookFolderpath("Test Folder")
For Each Email In Fold.Items ' This loop doesnt work
Debug.Print Email.Subject
Next
End Sub
Private Function outlookFolderpath(Inbox As String) As Object
Dim fold_name As String
Set OutlookFolder_Path = Nms.Folders(Inbox).Folders("Inbox")
For Each Email In OutlookFolder_Path.Items ' This Loop works
Debug.Print Email.Subject
Next
End Function
您好, 我希望有人可以帮我解决上面的代码。我试图从一个函数设置和收件箱文件夹路径并在子文件中使用它。 它在函数内工作正常,但在sub中设置时却没有? 任何人都可以看到我错在哪里?我收到运行时错误' 91' - 未设置对象变量或块变量 所以我会认为函数没有返回对象,但我不确定为什么?
感谢
答案 0 :(得分:1)
您需要从函数返回对象,所以
Set OutlookFolder_Path = Nms.Folders(Inbox).Folders("Inbox")
应该是
Set outlookFolderpath = Nms.Folders(Inbox).Folders("Inbox")
如果您在代码顶部声明Option Explicit
,则不太可能遇到此类问题,因为应声明所有变量。