VBA无法发送日历约会

时间:2011-09-30 00:00:33

标签: vba calendar outlook-vba appointment

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

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

有人能为我解释一下吗?

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

2 个答案:

答案 0 :(得分:5)

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

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

Appt.MeetingStatus = olMeeting

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

Appt.ReminderMinutesBeforeStart = 30

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

即。而不是

Set olApp = CreateObject("Outlook.Application")

你会用

Set olApp = Outlook.Application

HTH

答案 1 :(得分:0)

我有同样的问题,直到我更换

才开始工作
Appt.Recipients.Add ("John Doe")
Appt.Recipients.ResolveAll

使用

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

此致

克里斯