2016-11-04 126 views
0

我正在使用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 –

回答

0

Items.Restrict是一個返回新(受限)集合的函數。你需要使用返回的對象。