使用Matlab检索Outlook日历项目

问题描述:

我正在使用Matlab从一组共享Outlook日历中检索日历约会。我需要在某个日期范围内包括经常性和非经常性约会。此代码工作:使用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. 

我期望的限制方法,以除去从分别由滤波器设定的时间范围外的列表中的项(strDATstart和strDATend在代码别处设置)。但是,Restrict方法不能按预期工作,并且LST返回2147483647项(我认为这不合法,而是表示某种溢出情况)。大多数返回的项目是空的,但是整个列表的大小让我的代码非常慢。

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

+0

不,确定它不是列表的大小。这是在十六进制7FFFFFFF -1 –

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