5

当我手动进行日历提醒/约会时,我可以单击“邀请与会者”并选择要邀请的人,然后单击“发送”,每个人都会收到该日历提醒/约会。

我有以下代码以编程方式进行提醒,但它不会发送给预期的收件人。如果我在脚本运行后打开提醒并单击“邀请与会者”,我会看到列表中填满了我想向其发送提醒的人,所以我不确定为什么它实际上没有向其发送提醒他们。

任何人都可以为我阐明这一点吗?

Private Function CreateAppointment(SubjectStr As String, BodyStr As String, StartTime As Date, EndTime As Date, AllDay As Boolean)
    Dim olApp As Outlook.Application
    Dim Appt As Outlook.AppointmentItem
    ' Only create the reminder if there's no duplicate
    If (CheckForDuplicates(SubjectStr) = False) Then
        Set olApp = CreateObject("Outlook.Application")
        Set Appt = olApp.CreateItem(olAppointmentItem)
        Appt.Recipients.Add ("John Doe")
        Appt.Recipients.ResolveAll
        Appt.Subject = SubjectStr
        Appt.Start = StartTime
        Appt.End = EndTime
        Appt.AllDayEvent = AllDay
        Appt.Body = BodyStr
        Appt.ReminderSet = True
        Appt.Save
        Appt.Send
    End If
    Set Appt = Nothing
    Set olApp = Nothing
End Function
4

2 回答 2

5

会议是一种特定类型的约会——邀请其他人参加的约会。

为了预约会议,您需要做的不仅仅是邀请与会者。您需要将状态设置为“会议”。将此添加到您的代码中:

Appt.MeetingStatus = olMeeting

另请注意,您设置了提醒,但没有设置提醒时间。例如,

Appt.ReminderMinutesBeforeStart = 30

最后,如果这是 Outlook VBA,为什么要使用 CreateObject?您应该使用本机应用程序对象来派生所有对象。

即代替

Set olApp = CreateObject("Outlook.Application")

你会用

Set olApp = Outlook.Application

高温高压

于 2011-10-08T12:16:46.417 回答
0

我有同样的问题,直到我更换了它才能工作

Appt.Recipients.Add ("John Doe")
Appt.Recipients.ResolveAll

Appt.RequiredAttendees = "john.doe@email.com"

问候

克里斯

于 2018-05-18T15:17:58.677 回答