2017-07-07 106 views
0

我想在Excel中使用VBA在Outlook中创建一个新的“搜索文件夹”。 最后一行失败,这是保存功能。 “无法找到对象”。任何线索?Outlook通过Excel添加搜索文件夹VBA

Sub createfolder() 

Dim oApp As Outlook.Application 
Dim oSearch As Outlook.Search 
Dim oInbox As Outlook.mapifolder 
Dim sFolderPath As String 
Dim oScope As String 
Dim sFilter As String 

Set oApp = New Outlook.Application 
Set oInbox = oApp.GetNamespace("MAPI").Folders("Fin Reporting").Folders("July") 

sFolderPath = oInbox.FolderPath 
sScope = "'" & oInbox.FolderPath & "'" 
Set oSearch = oApp.AdvancedSearch(sScope) 

oSearch.Save ("TestSearch") 


End Sub 
+0

显然,它的失败上线之前,最后一个就是创建'oSearch')。你确定你需要在该行上设置吗?此外,没有任何700+现有的职位与* Error 424对象需要*帮助? –

+0

不,现在还不清楚,它倒数第二次失败。我拿出SET,它说它需要它。这绝对是在最后一线死亡。 @KenWhite – gemmo

+0

我做了更多的阅读,我认为我的错误是试图在共享收件箱上进行搜索。我认为不能这样做。任何人都可以验证吗?任何人都有其他选择? – gemmo

回答

0

你没有说你的“鳍报告”文件夹位于

这个例子的代码,我把它放在顶层文件夹,所以它是在同一水平“收件箱”

top --- 
     | 
     fin reporting 
     | | 
     | july 
     | 
     inbox 
     | 
     sent items 
     | 
     etc. 

试试这两个。看哪一个工作,或不工作。通过代码

单步按F8键多次

试试这个在Outlook

Sub createfolder_outlook() 

    Dim oInbox As MAPIFolder 
    Dim oSearch As Search 

    Set oInbox = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Parent.Folders("Fin Reporting").Folders("July") 
    Set oSearch = Application.AdvancedSearch("'" & oInbox.FolderPath & "'") 

    oSearch.Save ("TestSearch") 

End Sub 

然后做在Excel相同

Sub createfolder_excel() 

    Dim oInbox As Outlook.MAPIFolder 
    Dim oSearch As Outlook.Search 

    Set oInbox = Outlook.Application.GetNamespace("MAPI").GetDefaultFolder(Outlook.olFolderInbox).Parent.Folders("Fin Reporting").Folders("July") 
    Set oSearch = Outlook.Application.AdvancedSearch("'" & oInbox.FolderPath & "'") 

    oSearch.Save ("TestSearch") 

End Sub