只要单元格A1中的日期发生更改,就运行事件

时间:2019-06-12 18:21:02

标签: excel vba

需要输入有关如何在单元格A1上的日期更改时如何运行事件的信息。 A1单元格中的当前公式为= Today()。

此代码不适用于我:

Private Sub Worksheet_Change(ByVal Target As Range)

  If Target.Address = "$A$1" Then

    MsgBox "Another day has come!"

  End If

End Sub

例如如果是晚上11:59(2019年6月11日)并转到第二天上午12:00(2019年6月12日),将会自动运行一个过程。

谢谢大家。

2 个答案:

答案 0 :(得分:2)

我将 B1 用作“内存”单元格。使用BigBen的建议:

Private Sub Worksheet_Calculate()
    Application.EnableEvents = False
        If [B1] = "" Then
            [B1] = [A1]
        ElseIf [B1] <> [A1] Then
            [B1] = [A1]
            MsgBox "Another day has come!"
        End If
    Application.EnableEvents = True
End Sub

答案 1 :(得分:0)

另一种可能性,使用Application.ontime每天运行:

Public myBool As Boolean
Sub StartNextday()
    If myBool Then MsgBox "Another day has come!"
        Application.OnTime TimeSerial(0, 0, 0), "StartNextday"
        myBool = True
End Sub
Sub CloseNextday()
        Application.OnTime TimeSerial(0, 0, 0), "StartNextday", , False
End Sub