VBA Excel到Outlook(2010) - 仅使用“唯一日期”从“日期”列创建约会

时间:2014-01-01 12:17:11

标签: vba excel-vba outlook excel-2010 outlook-2010

信息: MS Office 2010
问题多个Outlook配置文件&多个日历&同一天重复 - 我只想要独一无二 来自: Excel 2010年 收件人: Outlook 2010

问题
我想创建一个从Excel运行到Outlook的VBA。我希望根据工作表中的日期列创建约会(任务,如果它被证明更合适)。

核心问题是:
+我有3个不同的配置文件,我只希望在1个配置文件(管理员)中显示约会/任务 +我有不同的日历,我宁愿预约是默认的。
+我想在我的约会/任务中添加类别 +我有10,000行数据,日期重复(很多),我只想要唯一的日期 +我不希望创建约会/任务的先前日期(如果可能)。

我运行了2个报告:
本月的第一个星期二,提取前几个月的所有销售数据。 在EOM之前4天,我第二次运行报告,寻找延迟付款,拒绝或退款,以及分销商支付。

约会/任务应设置为与excel中的日期匹配,或者为了保存一些列空间,我很乐意将其写入VBA代码以设置约会:
第一个星期二月份 EOM前4天

我有一些很棒的入门级代码,但是因为我有很多需要过滤的数据(只有唯一的日期,而且当前到未来的日期是首选),我不确定我的代码需要修改到使它适合我的设置。

价:
http://www.ozgrid.com/forum/showthread.php?t=18157&p=92262#post92262
http://www.vbaexpress.com/forum/showthread.php?25423-Solved-Excel-generate-calendar-appointments-in-Outlook&s=da1942ccfb8b85e3e7eb74ac4c95ed7d&p=177521&viewfull=1#post177521

我当前的代码
保存/创建于:启用宏的电子表格,模块(常规,不在工作表名称下),工具/参考/ Microsoft Office 14.0对象库[已选中]。

Sub StoreReminders()
Dim appOL As Object
Dim objReminder As Object

Set appOL = GetObject(, "Outlook.application")
Set objReminder = appOL.CreateItem(1) ' olAppointmentItem
Set ws1 = Worksheets("sql all 20131228")

objReminder.Start = ws1.Range("a1") & "10:30"
objReminder.Duration = "05:00"
objReminder.Subject = "EOM Reports #1"
objReminder.ReminderMinutesBeforeStart = 30
objReminder.ReminderSet = True
objReminder.Categories = "Acc - 1st Report"
'Becomes: "Acc - EOM Final" when 2nd appointment runs'
objReminder.BusyStatus = olBusy
objReminder.Save

End Sub  

我收到一些错误,首先是:Set appOL = GetObject(, "Outlook.application")

任何帮助都会很棒,我正在切割和放大将代码粘贴在一起,我就无法解决错误。

提前致谢:)

更新
我使用新代码时收到以下错误:
编译错误:未定义用户定义类型

Sub SetAppt()
Dim olApp As Outlook.Application
Dim olApt As AppointmentItem
Dim MySheet As Worksheet

Set MySheet = Worksheets("sql all 20131228")
Set olApp = New Outlook.Application
Set olApt = olApp.CreateItem(olAppointmentItem)

With olApt
    .Start = ws1.Range("n7") + TimeValue("10:30")
    'Time is set to 10:30AM on the date of the reminder'
    .Duration = "05:00"
    .Subject = "EOM Reports #1"
    .Location = "Office"
    .Body = "Start of Month, EOM Reports"
    .BusyStatus = olBusy
    .ReminderMinutesBeforeStart = 60
    .Categories = "Acc - 1st Report"
    'Becomes: "Acc - EOM Final" when 2nd appointment runs'
    .ReminderSet = True
    .Save
End With

Set olApt = Nothing
Set olApp = Nothing

End Sub  

所以,仍然在正方形,甚至基本代码都不起作用,因此不确定如何包含高级(Outlook用户配置文件,仅限唯一日期等)。

1 个答案:

答案 0 :(得分:1)

您需要向Outlook VBA模块添加正确的引用。

转到工具 - >参考,然后选择“Microsoft Outlook vXX Library”

这应该解决问题。