Excel VBA не находит назначение Outlook 2010 с использованием фильтра Restrict - PullRequest
0 голосов
/ 18 октября 2018

У меня проблема с календарем в Outlook 2010, который сводит меня с ума.Я довольно новичок как в Outlook, так и в VBA, поэтому я могу пропустить что-то довольно очевидное.Однако после долгих исследований и испытаний я не нашел решения.

Используя Excel VBA, я добавил дни рождения в календарь Outlook 2010 в качестве встреч на весь день (время начала 12:00 утра в день начала и конец 12:00:00 следующего дня).Когда я впоследствии пытаюсь найти встречу, используя следующий фильтр, программа ничего не возвращает за эту дату (в примере 14.10.2018 должна содержать 1 встречу):

Dim dAppDate as Date
dAppDate = "14.10.2018"
sFilter = "[Start] = '" & Format$(dAppDate, "dd.mm.yyyy") & "'"
Set onamespace = oApp.GetNamespace("MAPI")
Set oFolder = onamespace.GetDefaultFolder(olFolderCalendar)
Set oItems = oFolder.Items
Set oFilterAppointments = oItems.Restrict(sFilter)

Если, однако, я просто изменяюфильтр немного следующим образом:

sFilter "[Start] >= '" & Format$(dAppDate, "dd.mm.yyyy") & "'"

Я получаю все встречи ПОСЛЕ 14.10.2018, но не один на эту дату.Есть идеи?Это сводит меня с ума ... Я также попытался включить в фильтр время начала (12:00), но это тоже не принесло радости.Любые идеи будут более чем оценены.

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, что есть две проблемы:

  • Строка даты должна быть в однозначном формате, поэтому либо укажите месяц, либо используйте что-то вроде «гггг / мм / дд»
  • По крайней мере, здесь, в США, мне не удалось заставить работать оператор = при поиске дат, поэтому я попробовал комбинированный фильтр, и это сработало:

sFilter = "[Start] > '" & Format(dAppDate - 1, "yyyy/mm/dd") & "'" & " AND [End] < '" & Format(dAppDate + 1, "m/d/yyyy") & "'"
...