在我的 Outlook 中,我将默认提醒选项设置为会议开始前 5 分钟。但是,我的老板却将其设置为不设置任何提醒。在过去的几个月里,我老板设置的所有会议邀请都已放入我的日历中,而没有设置任何提醒,结果我错过了会议的开始。其他人的会议邀请也按预期设置为我的默认提醒。
有谁见过这种情况并知道是什么原因造成的/如何解决?
我们使用的是最新版本的 Outlook 和 Office 365(当前版本为 2106)。
答案1
如果高级人员将之前的约会(未设置提醒)复制到新的约会并保存,那么当发件人删除提醒标志时,就会发生您所看到的情况。
当你收到这样的约会并接受它时,你唯一的办法就是手动设置提醒并再次保存。
我必须想办法解决这些问题。
答案2
VBA 对我来说很管用。解决方案基于https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created
1. 在 ThisOutlookSession 模块顶部:
Option Explicit
'Respond when a new calendar item is created.
'https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created
Private WithEvents colItems As Outlook.Items 'col = Collection
2. 在 ThisOutlookSession 模块中:
Private Sub Application_Startup()
'Defines a collection of items from the calendar folder at application startup. Must be in ThisOutlookSession.
'This way we can respond when a new calendar item is created
'https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created
Dim oFolder As Outlook.MAPIFolder
Dim oNS As Outlook.NameSpace
Set oNS = Application.GetNamespace("MAPI")
Set oFolder = oNS.GetDefaultFolder(olFolderCalendar)
Set colItems = oFolder.Items
Set oNS = Nothing
Set oFolder = Nothing
End Sub
Sub colItems_ItemAdd(ByVal item As Object)
'Respond when a new calendar item of any wort is created.
'No effect on edits to existing calendar items (to capture that event, make a colItems_ItemChange) or deleting an item (colItems_ItemRemove)
'Must be in ThisOutlookSession.
'https://microsoft.public.office.developer.outlook.vba.narkive.com/6zlusiPe/new-calendar-item-is-created
'Guaranteed to fail if 16 or more items are added at once - that's a MAPI limitation
On Error GoTo ErrHandler
Dim AddReminder As VbMsgBoxResult
With item
'If no reminder set, offer to add 1h reminder.
'https://docs.microsoft.com/en-us/office/vba/api/outlook.appointmentitem.reminderset
If .ReminderSet = False Then 'For some reason, this may fail when creating an event (day-level item) directly from the calendar grid, especially if you have multiple calendars from different open and overlaid.
AddReminder = MsgBox("No reminder set. Would you like to add a one hour reminder to " & """" & item.Subject & """" & " starting " & item.Start & "?", vbYesNo) 'Especially useful when meeting scheduled from email invite.
If AddReminder = vbYes Then
.ReminderSet = True 'Yes, this is necessary. Setting a reminder time window doesn't automatically enable the reminder.
.ReminderMinutesBeforeStart = 60
End If
End If
End With
ExitSub:
Exit Sub
ErrHandler:
If Err.Number = -2147221233 Then 'Method 'ReminderSet' of object '_AppointmentItem' failed
GoTo ExitSub
Else
MsgBox "Error " & Err.Number & ":" & vbCrLf & Err.Description
End If
End Sub
现在无需提醒即可预约(或接收预约)。会弹出一个对话框,(a)告知您没有提醒,(b)提供 60 分钟提醒。好极了!