我有一个vba宏代码,我可以在其中执行以下操作:
Dim myFoundItems As Outlook.Items
Set myFoundItems = myCalendars.Restrict("[customUserProperty] = '" & sId & "'")
其中customUserProperty是我在我的宏中添加的用户属性(在该限制之后几行)。但是,在第一次运行此宏时,我得到一个属性不存在的错误。所以我正在考虑设置将myFoundItems设置为空集合的错误处理程序。但是我无论如何都无法做到这一点!
我尝试使用下面的代码,但是它会导致另一个错误!
Set myFoundItems = New Collection
也许您知道如何将myFoundItems设置为空集合,甚至更好的方法来检查是否已经创建了UserProperty?
答案 0 :(得分:0)
您无法使用New关键字创建新的Items实例。相反,您必须使用Folder类的Items属性。
问题的原因是您无法仅使用过滤器查询中的名称来引用用户属性。相反,您必须使用DASL查询,如下一个(VBA):
criteria = "@SQL=" _
& Chr(34) & "http://schemas.microsoft.com/mapi/string/" _
& "{00020329-0000-0000-C000-000000000046}/customUserProperty" & Chr(34) _
& " = 'Microsoft'"
有关详细信息,请参阅Filtering Items Using Query Keywords。您还可以找到Office Developer: How to programmatically restrict or filter “To” property using Outlook Object Model?页面。