0

我正在使用 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 个项目(我认为这不合法,而是代表某种溢出条件)。大多数返回的项目都是空的,但列表的整体大小使我的代码非常缓慢。

对于如何在日期范围内更好地检索或过滤这些约会的任何指导,我将不胜感激。

4

1 回答 1

0

Items.Restrict 是一个返回新(受限)集合的函数。您需要使用返回的对象。

于 2016-11-04T19:49:12.217 回答