【发布时间】:2018-12-28 01:38:17
【问题描述】:
如果我的 Outlook 目录集中不存在一个文件夹,我会使用以下代码创建一个文件夹。
Private Sub addOutlookFolderIfNotExists()
Set apOutlook = CreateObject("Outlook.Application")
apOutlook.Session.Logon
Dim myNameSpace As Outlook.Namespace
Dim myFolder As Outlook.Folder
Dim myNewFolder As Outlook.Folder
Set myNameSpace = apOutlook.GetNamespace("MAPI")
Set myFolder =
myNameSpace.GetDefaultFolder(olFolderInbox).Parent.Folders("Estimates")
For i = 1 To myFolder.Folders.Count
If myFolder.Folders.Item(i).Name = "Testing" Then
Exit Sub
End If
Next
addOutlookFolderIfNotExists = myFolder.Folders.Add("Testing")
End Sub
之后我想使用文件夹的属性。我想返回刚刚创建的 MAPIFolder 对象。我将 sub 更改为如下所示的函数。
Private Function addOutlookFolderIfNotExists() As MAPIFolder
Set apOutlook = CreateObject("Outlook.Application")
apOutlook.Session.Logon
Dim myNameSpace As Outlook.Namespace
Dim myFolder As Outlook.Folder
Dim myNewFolder As Outlook.Folder
Set myNameSpace = apOutlook.GetNamespace("MAPI")
Set myFolder = myNameSpace.GetDefaultFolder(olFolderInbox).Parent.Folders("Estimates")
For i = 1 To myFolder.Folders.Count
If myFolder.Folders.Item(i).Name = "Testing" Then
'Debug.Print TypeName(myFolder.Folders.Item(i))
addOutlookFolderIfNotExists = myFolder.Folders.Item(i)
Exit Function
End If
Next
addOutlookFolderIfNotExists = myFolder.Folders.Add("Testing")
End Function
这会返回一个错误
vba 对象变量或未设置块变量
但我不知道它指的是什么。
【问题讨论】: