VBA can';不要发送日历约会
当我手动制作日历提醒/约会时,我可以单击“邀请与会者”,选择要邀请的人,然后单击“发送”,每个人都将收到该日历提醒/约会 我有以下代码以编程方式制作提醒,但它不会发送给预期的收件人。如果我在脚本运行后打开提醒并单击“邀请与会者”,我可以看到列表中充满了我想向其发送提醒的人,因此我不确定为什么它没有实际向他们发送提醒 有人能帮我解释一下吗VBA can';不要发送日历约会,vba,calendar,appointment,Vba,Calendar,Appointment,当我手动制作日历提醒/约会时,我可以单击“邀请与会者”,选择要邀请的人,然后单击“发送”,每个人都将收到该日历提醒/约会 我有以下代码以编程方式制作提醒,但它不会发送给预期的收件人。如果我在脚本运行后打开提醒并单击“邀请与会者”,我可以看到列表中充满了我想向其发送提醒的人,因此我不确定为什么它没有实际向他们发送提醒 有人能帮我解释一下吗 Private Function CreateAppointment(SubjectStr As String, BodyStr As String, Star
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
会议是一种特定类型的约会——邀请其他人参加的约会 为了预约会议,您需要做的不仅仅是邀请与会者。您需要将状态设置为“会议”。将此添加到您的代码中:
Appt.MeetingStatus = olMeeting
还要注意,您设置了提醒,但没有设置提醒时间。比如说,
Appt.ReminderMinutesBeforeStart = 30
最后,如果这是Outlook VBA,为什么要使用CreateObject?您应该使用本机应用程序对象来派生所有对象
i、 e.代替
Set olApp = CreateObject("Outlook.Application")
你会用
Set olApp = Outlook.Application
HTH我也有同样的问题,直到我更换了它才开始工作
Appt.Recipients.Add ("John Doe")
Appt.Recipients.ResolveAll
与
问候
克里斯嗯,是的,我明白你的意思了!我试过了。我不知道为什么它没有被发送+1个有用的问题,这里也一样。我看到了一个名为“SendUsingAccount”的属性,您可以在其中进行如下设置:Application.Session.Accounts(1)。您应该在保存项目之前执行此操作。还是没有效果。我更改了帐户(例如,在我的pop3上而不是在公司Exchange服务器上进行了尝试)。此外,我还加载了一个Windows2000和OutlookXP的虚拟实例,并在那里进行了尝试。没有运气,也没有回应为什么它不起作用:P有趣的是,在Windows 2000上,我在发送线上看到一个安全弹出窗口,上面写着“此应用程序将尝试发送某些内容。你想允许吗?”我说“允许”,但什么也不允许。这比我设法做到的更好。宏安全性表示任何发送函数都必须在发送前通知用户,所以您必须做了一些半正确的事情。。。希望有人会遇到这个问题,并为我们提供答案。该代码运行良好,在Outlook 2010中进行了测试。我删除了
If(CheckForDuplicates(SubjectStr)=False),然后删除了If语句,因为它没有列出。请注意,出于安全考虑,有些事情只能通过将代码放入“VbaProject.OTM”中在VBA中完成。如果你把它放在别处,它就会失败。非常感谢JP!没有意识到我需要将它设置为会议类型。
Appt.RequiredAttendees = "john.doe@email.com"