ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ck1668

求助:excel表里到期的项目在Outlook的行事历里自动出现提示

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-3-10 00:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
' Outlook Option Explicit Private Sub Application_Startup() CreateNewAM End Sub Private Sub CreateNewAM() Dim XL_app As Excel.Application Dim XL_wb As Excel.Workbook Dim OLAitem As Outlook.AppointmentItem Dim Bodytxt As String Dim i As Integer Dim HaveItem As Boolean Dim x As Integer Dim LastColumn As Integer Set XL_app = CreateObject("Excel.Application") Set XL_wb = XL_app.Workbooks.Open("E:\OL_Reminder.xls") Bodytxt = "今天到期生產單號" & Chr(10) With XL_wb For x = 1 To 2 Sheets(x).Select i = 9 With Selection LastColumn = Range("IV" & i).End(xlToLeft).Column Do While .Cells(i, 9) <> "" If Excel.Application.WorksheetFunction.CountIf(Range(Cells(i, 11), Cells(i, LastColumn)), 0) > 0 Then If HaveItem = False Then HaveItem = True Bodytxt = Bodytxt & Cells(i, "B") & Chr(10) End If i = i + 1 Loop End With Next If Not HaveItem Then Bodytxt = "今天沒有到期生產單號!" End With On Error GoTo 0 Set OLAitem = CreateItem(olAppointmentItem) On Error Resume Next With OLAitem .Subject = "今天到期的工作" .Start = Now .End = Now .ReminderMinutesBeforeStart = 30 .Body = Bodytxt .Save .Display End With XL_app.ActiveWorkbook.Saved = True XL_app.Workbooks.Close XL_app.Quit Set XL_app = Nothing End Sub ' Code End Kevin, please improve [em06] Do While .Cells(i, 9) <> "" [em06]
[此贴子已经被作者于2006-3-10 0:43:43编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-10 16:27 | 显示全部楼层

Dear Kevin

请帮忙看看61楼,是不是lotustower说的下面这句代码有问题?我试过,结果弹出"今天没有到期的生产单号",但实际上是有到期的生产单号。

Do While .Cells(i, 9) <> ""

TA的精华主题

TA的得分主题

发表于 2006-3-10 16:58 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

这句代码没有问题。

另外,建议您抽点时间学习一下最基本的VBA知识,或者不要频繁的变更自己的需求细节,否则很难获得理想的解决方案——您这个简单的问题,看起来真是《没完没了》,呵呵。

TA的精华主题

TA的得分主题

发表于 2006-3-10 17:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

XL_app.Quit 是必需的

如果 Outlook 執行中有Error, XL_app.Quit 可能會沒有執行, 這可能會產生 Error

這時你需要重開 Windows (因為你不懂得其他的方法)

ps, the code tested ok

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-10 17:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-10 20:17 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Dear Kevin / lotustower两位,真的要《没完没了》啦,还要麻烦您们一次。其实,说句心里话,不要说您们厌烦了,就是我自己也真的不知道如何办才好。

Dear lotustower,我重新开机,再打开Outlook,结果弹出的还是"今天没有到期的生产单号"。但实际上是有到期的生产单号。56楼的附件里面的第一个sheet里今天是没有到期的生产单号,但第二个sheet里的O栏和U栏有到期的生产单号是8532,8533,8534。还有,您试着改变一下第一个sheet里的H栏或I栏里的时间,让几个生产单的K栏出现"今天到期"。然后关闭Outlook后再打开,它还是出现"今天没有到期的生产单号"。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-10 20:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

Dear lotustower,您好!是不是原来的EXCEL里的代码也要相应改一下?因原来对应的是1个SHEET,现在对应的是2个SHEET,下面是EXCEL里的代码。

Sub ListmatureItem()

Dim OLapp As Outlook.Application

Dim OLAitem As Outlook.AppointmentItem

Bodytxt = "今天到期生產單號" & Chr(10)

i = 9

With Sheet1

Do While .Cells(i, "L") <> ""

If CDate(.Cells(i, "L")) = Date Then

Bodytxt = Bodytxt & .Cells(i, "B") & Chr(10)

End If

i = i + 1

Loop

End With

On Error Resume Next

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

If Err.Number Then

Err.Clear

Set OLapp = CreateObject("Outlook.Application")

End If

On Error GoTo 0

Set OLAitem = OLapp.CreateItem(olAppointmentItem) '工作

On Error Resume Next

With OLAitem

.Subject = "今天到期的工作"

.Start = Now

.End = Now

.ReminderMinutesBeforeStart = 30 '30分鐘前提醒

.Body = Bodytxt

.Save

.Display

End With

Set OLcont = Nothing

Set OLapp = Nothing

End Sub

TA的精华主题

TA的得分主题

发表于 2006-3-10 22:46 | 显示全部楼层
Code in Outlook ONLY

求助:excel表里到期的项目在Outlook的行事历里自动出现提示

求助:excel表里到期的项目在Outlook的行事历里自动出现提示

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-3-11 08:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Dear lotustower,您好!我真的很感激您不厌其烦的为我回贴! 我试多几次以后,终于出现了您上面的画面。但我发现有这样一个问题:第1个Sheet没问题(这个Sheet在Excel的VBA里的名字叫做:Sheet1 Bulk-Liz Claiborne),无论怎样修改里面的日期,当关闭Outlook后再打开时,总会出现正确生产单号的提醒。但第2个Sheet就不行(VBA里的名字叫做:Sheet4 Bulk-Ann Taylor),里面的日期本来是没有今天到期的,我试着改了一下,有几款生产单让它今天到期,但当关闭Outlook后再打开时,提醒视窗里不会出现到期的生产单号。我接着又试了好几次,都是这样。麻烦您再帮我看看,为什么第2个Sheet不行。 另外,Code in Outlook ONLY,还真的只在Outlook里设立代码就行,Excel里其实不用设立代码。多谢您的提醒!
[此贴子已经被作者于2006-3-11 8:41:20编辑过]

TA的精华主题

TA的得分主题

发表于 2006-3-11 11:06 | 显示全部楼层
"总会出现正确生产单号的提醒" 你不懂 Outlook ??

求助:excel表里到期的项目在Outlook的行事历里自动出现提示

求助:excel表里到期的项目在Outlook的行事历里自动出现提示
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-6 19:56 , Processed in 0.034577 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表