vba - 设置 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”。我刚刚发现它仅不适用于邀请来自外部系统的会议。
解决方案
我终于找到了问题:您不能为定期约会设置类别,除非这是主/父约会。如果它不是主服务器,您可以使用 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
推荐阅读
- c# - WPF ListBox 多选不会在模型上引发 SelectedItem
- postgresql - Ubuntu 18.04 中的 PostgreSQL 奇怪行为
- c++ - 大字符串的 fprintf/fputs 与 cout 性能
- wpf - 直接在代码(视图)中访问 xaml 文件中的值
- apdu - 如何确定 SIM 卡上远程文件管理的 SPI?
- twitter-bootstrap - 响应式缩略图滑块一张一张地移动图像
- python - 为什么 scipy 为结果应该为零的积分提供非零结果?
- c++ - 使用现代 C++ 时,具有私有构造函数的类的 std::vector 无法编译
- php - 如何在 PHP 中转换 MSB - LSB 格式处理
- c - 如果我包含来自不同目录的标头,则无法获取预处理的源文件或目标文件