当我手动创建日历提醒/约会时,我可以点击“邀请与会者”并选择要邀请的人,然后点击“发送”,每个人都将收到该日历提醒/约会。
我有以下代码以编程方式进行提醒,但它不会发送给目标收件人。如果我在脚本运行后打开提醒并单击“邀请与会者”,我可以看到列表中填写了我要发送提醒的人,所以我不确定为什么它实际上并没有发送提醒给它们。
有人能为我解释一下吗?
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
答案 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"
此致
克里斯