Когда я использую ограничение для установки диапазона дат в объекте элемента Outlook, он не выбирает никаких встреч до того, что я установил в качестве «рабочих часов» в Outlook. Как сделать так, чтобы все, что пользователь устанавливает как «рабочие часы», не влияло на мой макрос?
Например. Мои «рабочие часы» в Outlook установлены с 13:00 до 17:00. Я создаю 4 встречи:
- 11:11, 10:00, 4 сентября 2017 г.
- 22:22, 13:00, 4 сентября 2017 г.
- 3333, 18:00, 4 сентября 2017 г.
- 4444, 13:00, 5 сентября 2017 г.
Мой код подберет последние 3 встречи, но не первую, если я ввожу даты 04.09.2017 и 05.09.2017.
Sub restrictDemo()
Dim olkItems As Outlook.Items, _
olkSelected As Outlook.Items, _
olkAppt As Outlook.AppointmentItem, _
dateStart As Date, _
dateEnd As Date
dateStart = InputBox("Starting date?", "", "m/d/yyyy")
dateEnd = InputBox("Ending date?", "", "m/d/yyyy")
If IsDate(dateStart) And IsDate(dateEnd) Then
Set olkItems = Session.GetDefaultFolder(olFolderCalendar).Items
olkItems.IncludeRecurrences = True
olkItems.Sort "Start"
Set olkSelected = olkItems.Restrict("[Start] >= '" & dateStart & "' AND [Start] <= '" & dateEnd & "'")
For Each olkAppt In olkSelected
counter = counter + 1
MsgBox counter
MsgBox olkAppt.Subject & " " & olkAppt.Location & olkAppt.Start
Next
Else
MsgBox "You must enter valid starting and ending dates to run this macro.", vbCritical + vbOKOnly, MACRO_NAME
End If
End Sub