自动拒绝会议邀请运行时错误 91:对象变量或未设置块变量

Auto-Decline Meeting Invite Run-Time Error 91: Object variable or With block variable not set

提问人:Keesler Water Walker 提问时间:5/16/2019 最后编辑:Martijn PietersKeesler Water Walker 更新时间:6/18/2020 访问量:242

问:

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

在我的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:未设置对象变量或 With 块变量。

我创建了一个用于测试的临时宏,该宏在 Outlook 中获取当前选定的会议邀请,并将其馈送到 AutoDecline 脚本中。这就是我让错误显示自己的方式。

Sub TestMacro()

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

End Sub

我希望放弃拒绝响应,而不是发送给会议发起人,这样我就不会向他们发送垃圾邮件。

VBA Outlook 运行时错误

评论


答:

0赞 mekaneck 6/12/2019 #1

如果不需要响应,我认为您不需要对响应执行任何操作。我相信您收到错误是因为您正在尝试在响应窗口未打开时关闭它。您可以尝试更改以下行,看看它是否摆脱了错误:

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