Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 每当单元格A1中的日期更改时运行事件_Excel_Vba - Fatal编程技术网

Excel 每当单元格A1中的日期更改时运行事件

Excel 每当单元格A1中的日期更改时运行事件,excel,vba,Excel,Vba,当单元格A1上的日期更改时,需要您输入如何运行事件。单元格A1中的当前公式为=今日() 此代码在我身上不起作用: 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日

当单元格A1上的日期更改时,需要您输入如何运行事件。单元格A1中的当前公式为=今日()

此代码在我身上不起作用:

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日),程序将自动运行


谢谢大家。

我会使用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
Private子工作表_Calculate()
Application.EnableEvents=False
如果[B1]=“那么
[B1]=[A1]
ElseIf[B1][A1]那么
[B1]=[A1]
MsgBox“又一天来了!”
如果结束
Application.EnableEvents=True
端接头

另一种可能性是,使用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

当公式重新计算时不触发。你需要,我来查一下。看起来很有希望。谢谢!:)我也要看看这个。我会等到第二天再确认一下。谢谢!:)@jjackeryw,您还可以将Timeserial=>Timeserial(20,10,0)中的时间更改为20:10:00来测试它。与Calculate方法相比,Calculate方法的优点是在00:00运行,Calculate方法将在(强制)重新计算后运行,