【问题标题】:Parsing appointments from shared Outlook calendars解析共享 Outlook 日历中的约会
【发布时间】:2020-06-30 07:47:53
【问题描述】:

我正在尝试通过 Excel VBA 为我们楼层的会议室创建一个匿名的日程安排。

源数据存储在不同的 Outlook 日历中(每个房间都有自己的日历),我可以通过 Outlook 的“共享日历”功能访问它们。

我目前遇到的问题是数据检索过程完全自动化。我让其他一切工作正常,但是,它需要用户从一个小的弹出窗口中手动选择(当前)五个不同的日历,这很烦人。

我尝试过使用GetDefaultFolder(olFolderCalendar).Items 方法,但这似乎只适用于本地日历,而不是来自网络的共享日历(Exchange)。

有没有办法直接处理这些房间日历,以便我可以自动化我的流程?

最好的问候,

达扎

这是我当前的代码,缩减到相关部分:

Set olNS = olApp.GetNamespace("MAPI")

For x = 1 To 5

    Set myCalItems = olNS.PickFolder.Items

    With myCalItems
        .Sort "[Start]", False
        .IncludeRecurrences = True
    End With

    StringToCheck = "[Start] >= " & Quote(StartDate & " 12:00 AM") & " AND [End] <= " & Quote(EndDate & " 11:59 PM")

    Set ItemstoCheck = myCalItems.Restrict(StringToCheck)

    ' Do stuff with every item in "ItemstoCheck"
    ' ...
    ' ...
    ' ...

Next 

【问题讨论】:

    标签: excel vba outlook


    【解决方案1】:

    您是否查看过 Namespace.GetSharedDefaultFolder 方法?

    【讨论】:

    • 谢谢,我还没有看到这个。文档说在GetSharedDefaultFolder(Recipient, FolderType) 中两个参数都是必需的。如何获取收件人参数,即文件夹/日历的所有者?
    • 您可以调用 Namespace.CreateRecipient 传递邮箱所有者的姓名。
    • 我看到了,但我怎么知道所有者是谁?有没有办法通过 VBA 获得这个,或者我需要打电话给技术人员,以便他们找出“所有者”是谁?
    • 所有者是您要查看其邮箱的 Exchange 用户。你事先不知道吗?如果代理邮箱已添加到当前配置文件中,您可以遍历 Namespace.Stores 集合中的所有存储,并为每个代理存储调用 Store.GetDefaultFolder。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多