将日期从Excel导入Outlook日历
我正在尝试将“E”列中的日期导入Outlook日历 我已经开始编写代码,但它只是将某些日期添加到我的日历中,而没有添加我认为是ex的多个日期。6/2的日期将添加到我的日历中,并带有正确的主题日期和正文,但对于6/1的日期,我有一个空槽将日期从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
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。在sayssobject
上打印,但很难说:/这需要一步一步地调试。@findwindown关于如何更改olApptSearch以添加多个日期的任何建议?我应该承认我不太使用outlook,所以这只是我的猜测。所以不,我不知道:/也许你可以添加日期作为搜索条件?@Findwindow好吧,看起来我现在设法添加了重复项,但我有另一个错误,也许你可以在这一行提供帮助。End=单元格(I,8)+单元格(I,9)我收到一个运行时错误,说明输入的日期早于开始日期。如果我能清除“看到我看到我将日期设置为一天加一天”,你知道为什么会发生这种情况吗?@findwindow我不确定我到底做了什么,但我再次使用了一个时间值并关闭它,然后再次运行,结果正确执行