【问题标题】:VBA Excel to Outlook (2010) - Creating Appointments from Date column with Unique dates onlyVBA Excel 到 Outlook (2010) - 从仅具有唯一日期的日期列创建约会
【发布时间】:2014-01-01 12:17:11
【问题描述】:

信息: 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 用户配置文件、唯一日期等)。

【问题讨论】:

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


    【解决方案1】:

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

    转到工具-->参考并选择“Microsoft Outlook vXX 库”

    这应该可以解决问题。

    【讨论】:

    • 谢谢,我需要“检查”两个设置。它可以工作,但现在我需要确保它打开正确的 Outlook 配置文件“ADMIN”,没有制作过时的应用程序并且它只是唯一的日期。 :) 感谢您提供重新检查我的参考设置的提示。
    猜你喜欢
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多