首页 > 解决方案 > 更改具有过去开始日期的 Outlook 约会系列

问题描述

也许你也经历过。当我参与一个已经在运行的项目时,项目负责人或 scrumm master 向我转发约会系列,例如每日站立或类似的系列,并且该系列在我收到邀请之前很久就开始了。

让我们假设以下示例:

当我查看我的日历时,我会在 1 月、2 月等看到这个约会,虽然我当时没有参加,因为我没有被分配。为了让我的日历显示真正发生的事情,我必须手动删除所有这些事件。

我想要归档的是:

    (...)
    If TypeName(objInboxObject) = "MeetingItem" Then
        Set objAppt = objInboxObject.GetAssociatedAppointment(False)
        If Not objAppt Is Nothing Then
            If objAppt.IsRecurring Then
                Set objRecurrPatt = objAppt.GetRecurrencePattern
                If Not objRecurrPatt Is Nothing Then
    (...)

我怎样才能从今天(我收到它的日期)开始找出下一个未来的事件?在示例中,这将是 2021 年 3 月 22 日。尤其是在重复出现模式比示例中更复杂的情况下。

然后我会用这个计算的日期替换系列的开始日期并保存会议项目。如果我在普通的 Outlook 窗口中接受它,我将来会有一个日历条目,而过去没有。

标签: vbaoutlookseriesappointment

解决方案


分析RecurrencePattern对象,您可以找到下一次发生的日期。然后,您可以使用RecurrencePattern.GetOccurrence方法AppointmentItem在指定日期返回对象的特定实例。如果在指定日期不存在该系列的约会,则该GetOccurrence方法会生成错误。


推荐阅读