如何调出“高级查找”使用 VBA 在 Outlook 中进行对话框

发布于 2024-11-25 10:22:15 字数 413 浏览 0 评论 0原文

我知道如何使用 Outlook.AdvancedSearch() 方法进行搜索。我想要的是基于我的搜索参数,用 VBA 代码填充高级查找对话框中的构建,如下所示。

我想要的是最终用户在搜索结束时有选择地从结果中进行选择和移动。

高级查找对话框

编辑 如果这是不可能的(正如我的搜索所示),那么如何将结果保存到搜索文件夹中?当我使用 Search.Save() 方法并且该文件夹已存在时,我收到错误。至少我希望在搜索完成后使搜索文件夹处于活动状态。

错误消息

I know how to do a search using the Outlook.AdvancedSearch() method. What I want is based on the parameters for my search to populate the build in advanced find dialog with VBA code, as seen below.

What I want is in the end of the search for the end user to select and move from the results selectively.

Advanced Find Dialog

Edit
If this is not possible (as my searches indicate) then how can I save the results into a search folder? When I use the Search.Save() method and the folder already exists, then I get an error. At least I would like the make the search folder active when the search is complete.

Error Message

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

念三年u 2024-12-02 10:22:15

您可以使用以下代码在命名空间 ns解析文件夹

ns.Folders("Personal Folders").Folders("Inbox")

在此线程中找到:访问 Outlook 默认文件夹

因此,您可以在创建搜索文件夹之前检查它是否已存在。

您还可以防止错误或处理它,例如:

On Error Resume Next
'Create folder (won't raise error if already exists)
On Error GoTo 0

最终,要激活搜索文件夹,您可以使用CurrentFolder属性:

Sub ChangeCurrentFolder()
    Dim myolApp As Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Set myolApp = CreateObject("Outlook.Application")
    Set myNamespace = myolApp.GetNamespace("MAPI")
    Set myolApp.ActiveExplorer.CurrentFolder = _
    myNamespace.GetDefaultFolder(olFolderCalendar)
End Sub

请参阅MSDN 了解更多信息。

You can parse a folder within the namespace ns with this kind of code:

ns.Folders("Personal Folders").Folders("Inbox")

Found in this thread: Access Outlook default folder

Thus, you can check if your search folder already exists before creating it.

You can also prevent the error or handle it, for instance:

On Error Resume Next
'Create folder (won't raise error if already exists)
On Error GoTo 0

Eventually, to activate the search folder, you can use the CurrentFolder property:

Sub ChangeCurrentFolder()
    Dim myolApp As Outlook.Application
    Dim myNamespace As Outlook.NameSpace
    Set myolApp = CreateObject("Outlook.Application")
    Set myNamespace = myolApp.GetNamespace("MAPI")
    Set myolApp.ActiveExplorer.CurrentFolder = _
    myNamespace.GetDefaultFolder(olFolderCalendar)
End Sub

See MSDN for more information.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文