如何通过 Excel 将约会添加到非默认日历

Posted

技术标签:

【中文标题】如何通过 Excel 将约会添加到非默认日历【英文标题】:How to add appointment to non default calendar through Excel 【发布时间】:2013-11-12 11:12:33 【问题描述】:

我正在尝试通过 Excel 将约会添加到 Outlook 中的非默认日历。

当我将约会添加到默认日历时,一切正常。

默认日历代码:

Sub Appointments()

    Const olAppointmentItem As Long = 1

    Dim OLApp As Object
    Dim OLNS As Object
    Dim OLAppointment As Object

    On Error Resume Next

    Set OLApp = GetObject(, "Outlook.Application")

    If OLApp Is Nothing Then Set OLApp = CreateObject("Outlook.Application")
    On Error GoTo 0
   
    If Not OLApp Is Nothing Then
        Set OLNS = OLApp.GetNamespace("MAPI")
        OLNS.Logon
        Set OLAppointment = OLApp.Item.Add(olAppointmentItem)
        OLAppointment.Subject = Range("A1").Value
        OLAppointment.Start = Range("C3").Value
        OLAppointment.Duration = Range("C1").Value
        OLAppointment.ReminderMinutesBeforeStart = Range("D1").Value
        OLAppointment.Save
         
        Set OLAppointment = Nothing
        Set OLNS = Nothing
        Set OLApp = Nothing
    End If    
End Sub

我正在尝试使用“文件夹”对象来设置非默认日历,但 Excel 返回编译错误。

Sub Appointments()

    Const olAppointmentItem As Long = 1

    Dim OLApp As Object
    Dim OLNS As Object
    Dim OLAppointment As Object
    Dim miCalendario As Object
    On Error Resume Next
    Set OLApp = GetObject(, "Outlook.Application")
    If OLApp Is Nothing Then Set OLApp = CreateObject("Outlook.Application")
    On Error GoTo 0
     
    If Not OLApp Is Nothing Then
         
        Set OLNS = OLApp.GetNamespace("MAPI")
        OLNS.Logon
        Set miCalendario = OLApp.Session.GetDefaultFolder(9).Folders("a")
        Set OLAppointment = miCalendario.Item.Add(olAppointmentItem)
        OLAppointment.Subject = Range("A1").Value
        OLAppointment.Start = Range("C3").Value
        OLAppointment.Duration = Range("C1").Value
        OLAppointment.ReminderMinutesBeforeStart = Range("D1").Value
        OLAppointment.Save
         
        Set OLAppointment = Nothing
        Set OLNS = Nothing
        Set OLApp = Nothing
    End If
     
End Sub

我为 Outlook 制作了这个脚本。我正在尝试针对 Excel 进行修改。

Sub AddContactsFolder()

    Dim myNameSpace As Outlook.NameSpace
    Dim myFolder As Outlook.Folder
    Dim myNewFolder As Outlook.AppointmentItem
    Set myNameSpace = Application.GetNamespace("MAPI")
    Set myFolder = myNameSpace.GetDefaultFolder(olFolderCalendar).Folders("aa")
    MsgBox myFolder
    Set myNewFolder = myFolder.Items.Add(olAppointmentItem)
    With myNewFolder
        .Subject = "aaaaa"
        .Start = "10/11/2013"
        .ReminderMinutesBeforeStart = "20"
        .Save
    End With
End Sub

【问题讨论】:

【参考方案1】:

线

设置 OLAppointment = miCalendario.Item.Add(olAppointmentItem)

必须

 Set OLAppointment = miCalendario.Items.Add(olAppointmentItem)

【讨论】:

你是如何解决这个问题的?

以上是关于如何通过 Excel 将约会添加到非默认日历的主要内容,如果未能解决你的问题,请参考以下文章

使用日历约会交换 Web 服务

如何使用 C# 从 Windows 10 日历中检索 UWP 中的约会

如何从日历数据库中获取可用时间段列表

iOS UI 测试:如何查看日历中的约会?

尝试通过交换 api 在交换日历上创建会议时出错

600 + 行 Excel 数据创建 Outlook 约会...但只创建一个约会