【发布时间】:2017-03-18 16:01:39
【问题描述】:
我正在使用 Matlab 从一组共享的 Outlook 日历中检索日历约会。我需要在某个日期范围内同时包含定期和非定期约会。此代码有效:
outlook = actxserver('Outlook.Application');
mapi = outlook.GetNamespace('mapi');
explorer = mapi.GetDefaultFolder(9).GetExplorer;
NavModule = explorer.NavigationPane.Modules.GetNavigationModule(1);
NavGroup = NavModule.NavigationGroups.GetDefaultNavigationGroup(2);
filter = {['[Start] >= ''',strDATstart,''' AND [Start] <= ''', strDATend, '''']};
for i=1:NavGroup.NavigationFolders.Count
NavFolder = NavGroup.NavigationFolders.Item(i);
LST = NavFolder.Folder.Items;
LST.IncludeRecurrences = -1;
LST.Sort('[Start]');
LST.Restrict(filter{1});
etc.
我希望 Restrict 方法从列表中删除超出过滤器设置的日期范围的项目(strDATstart 和 strDATend 在代码中的其他位置设置)。但是,Restrict 方法没有按预期工作,并且 LST 返回 2147483647 个项目(我认为这不合法,而是代表某种溢出条件)。大多数返回的项目都是空的,但列表的整体大小让我的代码非常慢。
对于如何更好地检索或过滤某个日期范围内的这些约会的任何指导,我将不胜感激。
【问题讨论】:
-
不,确定不是列表的大小。即 hexa 中的 -1 7FFFFFFF
标签: matlab outlook com outlook-calendar