将日期从Excel导入Outlook日历

将日期从Excel导入Outlook日历,excel,vba,outlook,calendar,Excel,Vba,Outlook,Calendar,我正在尝试将“E”列中的日期导入Outlook日历 我已经开始编写代码,但它只是将某些日期添加到我的日历中,而没有添加我认为是ex的多个日期。6/2的日期将添加到我的日历中,并带有正确的主题日期和正文,但对于6/1的日期,我有一个空槽 Option Explicit Public Sub CreateOutlookApptz() Sheets("Sheet2").Select On Error GoTo Err_Execute Dim olApp As OUtlook.A

我正在尝试将“E”列中的日期导入Outlook日历

我已经开始编写代码,但它只是将某些日期添加到我的日历中,而没有添加我认为是ex的多个日期。6/2的日期将添加到我的日历中,并带有正确的主题日期和正文,但对于6/1的日期,我有一个空槽

Option Explicit
Public Sub CreateOutlookApptz()
   Sheets("Sheet2").Select
    On Error GoTo Err_Execute

    Dim olApp As OUtlook.Application
    Dim olAppt As OUtlook.AppointmentItem
    Dim blnCreated As Boolean
    Dim olNs As OUtlook.Namespace
    Dim CalFolder As OUtlook.MAPIFolder
    Dim subFolder As OUtlook.MAPIFolder
    Dim arrCal As String

    Dim i As Long

    On Error Resume Next
    Set olApp = OUtlook.Application

    If olApp Is Nothing Then
        Set olApp = OUtlook.Application
         blnCreated = True
        Err.Clear
    Else
        blnCreated = False
    End If

    On Error GoTo 0

    Set olNs = olApp.GetNamespace("MAPI")
    Set CalFolder = olNs.GetDefaultFolder(olFolderCalendar)

    i = 2
    Do Until Trim(Cells(i, 1).Value) = ""

    Set subFolder = CalFolder

    Set olAppt = subFolder.Items.Add(olAppointmentItem)

    MsgBox Cells(i, 6) + Cells(i, 7)

    'MsgBox subFolder, vbOKCancel, "Folder Name"

    With olAppt

    'Define calendar item properties
        .Start = Cells(i, 6) + Cells(i, 7)
        .End = Cells(i, 8) + Cells(i, 9)
        .Subject = Cells(i, 2)
        .Location = Cells(i, 3)
        .Body = Cells(i, 4)
        .BusyStatus = olBusy
        .ReminderMinutesBeforeStart = Cells(i, 10)
        .ReminderSet = True
        .Categories = Cells(i, 5)
        .Save

    End With

        i = i + 1
        Loop
    Set olAppt = Nothing
    Set olApp = Nothing

    Exit Sub

Err_Execute:
    MsgBox "An error occurred - Exporting items to Calendar."

End Sub

这样试试看

Private Sub Add_Appointments_To_Outlook_Calendar()

    'Include Microsoft Outlook nn.nn Object Library from Tools -> References
    Dim oAppt As AppointmentItem
    Dim Remind_Time As Double

    i = 2
    Subj = ThisWorkbook.Sheets(1).Cells(i, 1)

    'Loop through entire list of Reminders to be added
    While Subj <> ""
        Set oAppt = Outlook.Application.CreateItem(olAppointmentItem)

        oAppt.Subject = Subj
        oAppt.Location = ThisWorkbook.Sheets(1).Cells(i, 2)
        oAppt.Start = ThisWorkbook.Sheets(1).Cells(i, 3)
        Remind_Time = ThisWorkbook.Sheets(1).Cells(i, 4) * 1 * 60
        oAppt.ReminderMinutesBeforeStart = Remind_Time
        oAppt.AllDayEvent = True
        oAppt.Save

        i = i + 1
        Subj = ThisWorkbook.Sheets(1).Cells(i, 1)
    Wend
    MsgBox "Reminder(s) Added To Outlook Calendar"

End Sub
Private子项将约会添加到Outlook日历()
'从工具->引用中包括Microsoft Outlook nn.nn对象库
Dim oAppt作为任命项目
模糊提醒时间为双倍
i=2
sub=此工作簿.Sheets(1).单元格(i,1)
'循环浏览要添加的提醒的整个列表
而Subj“
设置oAppt=Outlook.Application.CreateItem(olAppointmentItem)
oAppt.Subject=Subject
oAppt.Location=此工作簿.Sheets(1).单元格(i,2)
oAppt.Start=ThisWorkbook.Sheets(1).单元格(i,3)
提醒时间=此工作簿。工作表(1)。单元格(i,4)*1*60
oAppt.employerMinutesBeforestart=提醒时间
oAppt.AllDayEvent=True
哎呀,救命
i=i+1
sub=此工作簿.Sheets(1).单元格(i,1)
温德
MsgBox“已将提醒添加到Outlook日历”
端接头
您的设置将如下所示

我在书中谈到了这个概念,以及许多其他类似但不同的东西


它不会添加多个日期,因为
如果olApptSearch什么都不是,那么
。关于跳过日期,加入一些
debug。在say
ssobject
上打印
,但很难说:/这需要一步一步地调试。@findwindown关于如何更改olApptSearch以添加多个日期的任何建议?我应该承认我不太使用outlook,所以这只是我的猜测。所以不,我不知道:/也许你可以添加日期作为搜索条件?@Findwindow好吧,看起来我现在设法添加了重复项,但我有另一个错误,也许你可以在这一行提供帮助。End=单元格(I,8)+单元格(I,9)我收到一个运行时错误,说明输入的日期早于开始日期。如果我能清除“看到我看到我将日期设置为一天加一天”,你知道为什么会发生这种情况吗?@findwindow我不确定我到底做了什么,但我再次使用了一个时间值并关闭它,然后再次运行,结果正确执行