如何在5小时后获得Excel中的提醒警报?

时间:2017-04-08 16:59:18

标签: excel excel-vba vba

我希望使用VB或宏在5小时后在Excel中获得通知警报?

2 个答案:

答案 0 :(得分:0)

您可以使用3种方法快速轻松地在MS Excel中创建提醒或通知:

  1. 使用IF功能显示消息

    • =IF(B2<TODAY()+3,"Send Reminder","")
  2. 使用条件格式

    • 点击“首页”标签
    • 在“样式”命令组中,选择“条件格式设置”选项卡
    • 点击新规则...
    • 在新的格式设置规则窗口中,选择“使用公式确定要格式化的单元格”
    • 在“此公式为真的格式值:”下,写下面给出的公式
    • =AND(C2<>"",C2<TODAY()+3)
    • 然后单击“格式”并应用所选单元格和字体的格式
  3. 将Excel VBA与for loop一起使用。宏代码如下:

  4. Private Sub Workbook_Open() For Each cell In Range("B2:B100") If cell.Value < Date + 3 And cell.Value <> “” Then cell.Interior.ColorIndex = 3 cell.Font.ColorIndex = 2 cell.Font.Bold = True End If Next End Sub

    • 您还可以使用Private Sub Workbook_Open()下的以下代码行初始化上面宏代码中的格式:

    Range("B2:B100").Interior.ColorIndex = xlNone

答案 1 :(得分:0)

从VBA调用WinAPI存在风险,但您也可以尝试:

Option Explicit

Public Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal idEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal idEvent As Long) As Long

Public Sub AlertMe(dblMinutes As Double)
    Dim idEvent As Long: idEvent = SetTimer(0&, 0&, CLng(dblMinutes * 60 * 1000), AddressOf AlertSub)
End Sub

Public Sub AlertSub(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
    KillTimer 0&, idEvent
    MsgBox "Alert!"
End Sub

您可以将此保存到例如Personal.xls并以这种方式调用它:

AlertMe 300 ' minutes