首页 > 解决方案 > 自动拒绝会议邀请运行时错误 91:对象变量或未设置块变量

问题描述

我在多个位置找到了自动拒绝会议请求的代码。

在我的 Outlook 2013 中,作为规则的操作,它停止在打算丢弃而不是发送回复的行上。

会议组织者不需要每个人的回应。因为它在小组日历上,所以我不需要它在我的个人上,因为它们不是我参与的会议。

Outlook 规则在遇到运行时错误时中止脚本并在执行几个附加操作(标记为已读和删除)之前跳出。

这导致邀请保留在我的收件箱中,我不知道向组织者发送垃圾邮件是怎么回事。

Sub AutoDeclineMeetings(oRequest As MeetingItem)

If oRequest.MessageClass <> "IPM.Schedule.Meeting.Request" Then
    Exit Sub
End If

Dim oAppt As AppointmentItem
Set oAppt = oRequest.GetAssociatedAppointment(False)

Dim oResponse
Set oResponse = oAppt.Respond(olMeetingDeclined, True)
oResponse.Close (olDiscard)

'These actions I added for my rule to discard the invite from the inbox.
oRequest.UnRead = False
oRequest.Delete

End Sub

oResponse.Close (olDiscard)我收到的线路上

运行时错误 91:对象变量或未设置块变量。

我创建了一个用于测试的临时宏,它在 Outlook 中获取当前选定的会议邀请,并将其提供给 AutoDecline 脚本。这就是我让错误显示出来的方式。

Sub TestMacro()

Dim TestItem As MeetingItem
Set TestItem = ActiveExplorer.Selection.Item(1)
Call AutoDeclineMeetings(TestItem)

End Sub

我希望拒绝响应被丢弃而不是发送给会议发起者,因此我不会向他们发送垃圾邮件。

标签: vbaoutlookruntime-error

解决方案


如果不需要响应,我认为您不需要对响应做任何事情。我相信您会收到错误消息,因为您试图在响应窗口未打开时关闭它。您可以尝试更改以下行以查看它是否消除了错误:

Set oResponse = oAppt.Respond(olMeetingDeclined, False, True)

我有类似的宏,如果没有请求响应,我根本不做任何事情。例如:

Set oResponse = oAppt.Respond(olMeetingDeclined, True)
If oAppt.ResponseRequested Then
    oResponse.Send
End If

oRequest.UnRead = False
oRequest.Delete

推荐阅读