Ms access VBA访问功能-将Outlook文件夹/收件箱作为对象返回

Ms access VBA访问功能-将Outlook文件夹/收件箱作为对象返回,ms-access,outlook,vba,Ms Access,Outlook,Vba,你好,, 我希望有人能帮我写上面的代码。我试图从一个函数中设置和收件箱文件夹路径,并在子文件夹中使用它。 它在功能内工作正常,但在sub?中设置时工作不正常? 谁能看出我错在哪里?我收到运行时错误“91”-对象变量或未设置块变量 所以我认为函数没有返回对象,但我不知道为什么 谢谢您需要从函数返回对象,所以 Set OutlookFolder\u Path=Nms.Folders(收件箱)。Folders(“收件箱”) 应该是 Set-outlookFolderpath=Nms.Folders(收

你好,, 我希望有人能帮我写上面的代码。我试图从一个函数中设置和收件箱文件夹路径,并在子文件夹中使用它。 它在功能内工作正常,但在sub?中设置时工作不正常? 谁能看出我错在哪里?我收到运行时错误“91”-对象变量或未设置块变量 所以我认为函数没有返回对象,但我不知道为什么


谢谢

您需要从函数返回对象,所以

Set OutlookFolder\u Path=Nms.Folders(收件箱)。Folders(“收件箱”)

应该是

Set-outlookFolderpath=Nms.Folders(收件箱)。Folders(“收件箱”)


如果您在代码顶部声明
Option Explicit
,您将不太可能遇到这样的问题,因为您的所有变量都应该声明。

您好,很抱歉,这是一个打字错误,为了示例的目的,我制作了一个精简版的脚本。不过,你确实让我找到了答案,因为我需要将电子邮件调暗,以使其工作,所以感谢“选项明确”提示
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