首页 > 解决方案 > 设置 Outlook 约会项目类别,用于邀请来自外部系统的会议:对象不支持此方法

问题描述

以下代码设置有关主题和正文中文本的约会项目类别。

oFinalItems是日历条目的选择,包含有效条目。

dicCategories是一个包含搜索字符串和指定类别的字典:

For Each oAppt In oFinalItems
    For Each Key In dicCategories.Keys
        If InStr(1, oAppt.Subject & oAppt.Location, Key, vbTextCompare) > 0 Then
            strCategory = dicCategories.Item(Key)
            If InStr(1, oAppt.Categories, strCategory, vbTextCompare) = 0 Then
                If oAppt.Categories = "" Then
                    oAppt.Categories = strCategory
                Else
                    oAppt.Categories = strCategory & ";" & oAppt.Categories
                End If
                oAppt.Save
            End If
            Exit For
        End If
    Next
Next

我在该行中收到错误“对象不支持此方法”

oAppt.Categories = strCategory

此代码在重新安装我的 PC 之前运行。

我检查了类型,上面写着“AppointmentItem”。我刚刚发现它仅不适用于邀请来自外部系统的会议。

标签: vbaoutlook

解决方案


我终于找到了问题:您不能为定期约会设置类别,除非这是主/父约会。如果它不是主服务器,您可以使用 Parent 属性访问它。

这解决了这个问题:

Sub SetCategory(oItem As Object, sCat As String)

If TypeOf oItem Is AppointmentItem Then
    If oItem.IsRecurring Then
        If oItem.RecurrenceState <> olApptMaster Then
            Set oItem = oItem.Parent
        End If
    End If

End If
oItem.Categories = sCat
oItem.Save
End Sub

推荐阅读