Vba 约会删除失败,可能是因为AppointmentItem为空?

Vba 约会删除失败,可能是因为AppointmentItem为空?,vba,outlook,Vba,Outlook,我有大量关于约会/取消的电子邮件发送给我希望自动接受或取消的用户,然后从他们的收件箱中删除。accept方法似乎可以工作,但此方法会针对指向OAppoint.Delete行的每次取消向用户发送调试报告。 我的想法是,它在某些情况下出错,oMeetingItem.GetAssociatedAppointment返回null,因此它没有要删除的内容。这只是一种预感。有什么想法吗?是的,如果您将false传递给GetAssociatedAppointment,它将不会创建一个尚未存在的约会。在运行此宏

我有大量关于约会/取消的电子邮件发送给我希望自动接受或取消的用户,然后从他们的收件箱中删除。accept方法似乎可以工作,但此方法会针对指向OAppoint.Delete行的每次取消向用户发送调试报告。
我的想法是,它在某些情况下出错,oMeetingItem.GetAssociatedAppointment返回null,因此它没有要删除的内容。这只是一种预感。有什么想法吗?

是的,如果您将false传递给GetAssociatedAppointment,它将不会创建一个尚未存在的约会。

在运行此宏的情况下,始终存在一个已存在的约会。在进行测试时,我可以在日历上看到取消的约会。如果是这种情况,您知道是什么导致了这种情况吗?运行时错误“91”:未设置对象变量或With block变量,这是真正让我困惑的问题…它将给出错误消息并询问我是否要调试。然后,调试将指向删除行。然而,当我关闭调试时,它成功地删除了约会!如果不是因为人们会一次取消大量约会,并且会出现20-50个错误窗口,那么这并不是什么大问题。因此,当您逐步查看代码时,OAppoimmation变量是否为null?
Sub AutoCancel(ByRef Item As Outlook.MeetingItem)

  Dim strID As String
  Dim olNS As Outlook.NameSpace
  Dim oMeetingItem As Outlook.MeetingItem
  Dim oResponse As Outlook.MeetingItem
  Dim oAppointment As Outlook.AppointmentItem

  strID = Item.EntryID

  Set olNS = Application.GetNamespace("MAPI")
  Set oMeetingItem = olNS.GetItemFromID(strID)
  Set oAppointment = oMeetingItem.GetAssociatedAppointment(False)

 oAppointment.Delete

  Set oAppointment = Nothing
  Set oMeetingItem = Nothing
  Set olNS = Nothing

End Sub