用EXCEL的定时弹出框提醒,怎样用VB写?

每日都需要各部门用同样的表格报数,并且每十天又要求各部门写总结,虽然大家都清楚十天写总结,但总是有些部门这事给忘的,必须一个个电话催收。现在我想,在这个表里每第十天,当他们打开这个表填写数据时,都会有个弹出框来提醒他们。请高手赐教,多谢!!!

如果不指定日期,只是间隔10天。则代码如下

Private Sub Workbook_Open()
Dim rq As Date, hhh As String
rq = Date
hhh = GetSetting(ThisWorkbook.Name, "MySet", "MyKey", "")
If Val(hhh) = 0 Then
  SaveSetting ThisWorkbook.Name, "MySet", "MyKey", rq
ElseIf DateValue(rq) - DateValue(hhh) >= 10 Then
    MsgBox "您好,该写总结了!", vbOKOnly + vbInformation, "温馨提示"
    DeleteSetting ThisWorkbook.Name, "Myset", "MyKey"
    SaveSetting ThisWorkbook.Name, "Myset", "MyKey", rq
End If
End Sub

如果指定每月10,20,30日(2月为10,20,28日),则代码如下

Private Sub Workbook_Open()
If Month(Date) = 2 Then
  If Day(Date) = 10 Or Day(Date) = 20 Or Day(Date) = 28 Then MsgBox "您好,该写总结了!", vbInformation + vbOKOnly, "温馨提示"
Else
  If Day(Date) = 10 Or Day(Date) = 20 Or Day(Date) = 30 Then MsgBox "您好,该写总结了!", vbInformation + vbOKOnly, "温馨提示"
End If
End Sub

追问

你写得这么好,我不知怎样用,复制入去后,在工具--宏--宏里没有显示,不知为什么!

追答

打开工作簿,按下Alt+F11键打开vbe编辑器,在左边的工程资源窗口中有一个Thisworkbook,双击它,把代码粘贴进右边的代码窗口就行。以后每次打开工作簿,这个宏就会自动运行。不必指定宏。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-01-11

看一看附件中的效果是不是你想要的。

附件中的代码设定每月10号、20号、30号打开文件时弹出提醒框。

追问

你好,我的表是固定日期的,但当遇到下个月只有28日,我又怎样改呢!

本回答被网友采纳
相似回答