美文网首页
Excel VBA之日期篇 4.3 巧自定义提醒闹钟 防止走神全

Excel VBA之日期篇 4.3 巧自定义提醒闹钟 防止走神全

作者: Excel和VBA | 来源:发表于2021-02-13 11:37 被阅读0次

    前景提要

    昨天我们分享了如何设置一个excel的提醒功能,也是收到了不错的反馈,有很多的童鞋就表示这样的功能虽然是不错,但是并不是很实用,因为在现在的紧张的工作环境中,都非常的强调效率,大多数的公司老板还是比较的人性化的,他们还是希望大家能够准时上班准时下班,只要能够准时的完成自己的工作,加班是不存在的事情,这样的体贴员工,不推崇996的老板实在是太好了,不过老板不希望加班,但是很多的童鞋却不得不加班,因为事情实在是太多了,他们经常会忘记自己还有事情没有做,所以不得不加班,他们希望能够用VBA实现这样的提醒功能,让他们在当天的某个时间提醒他应该做其他的事情了,这样能够有紧迫感,让他们能够抓紧时间做事情,以免出现不必要的加班,甚至996的情况的出现。

    场景说明

    其实在有人提到这个需求的时候,小编的内心就小小的颤动了一下,这个需求其实不仅仅他们需求,小编感觉自己也非常的需要,因为小编也是属于那种做事情不够专注,一会做这个,一会做那个,虽然平时事情并不是很多,但是如果碰到那明天事情很多,就会出现不得不自己让自己加班得悲剧,既然这个功能大家都非常的需要,小编就算是为了自己也要将这个小提醒功能弄出来,帮助那些自己逼自己996的人,早日解脱苦海

    为了演示上的方便,我们就简单写一个小代码,主要告诉大家如何来实现这样的效果的,我们这里就选择10s弹窗提出一次,告诉我时间到了,要赶紧开始下一项任务了,否则又要996了。

    Sub test()
    
    Application.OnTime Now + TimeValue("00:00:10"), "msg"
    
    End Sub
    
    Sub msg()
    
    MsgBox "计时结束,请赶紧下一项任务,杜绝996"
    
    End Sub
    

    代码看起来非常的简单,因为我们需要的场景也是不是很复杂,主要是到时间之后让excel能够自动实现弹窗提醒的功能,告诉我们要尽快加快进度做做下一项任务了,不然真的有可能要加班了,

    我们来看看效果,这个效果如果是通过动画来展示的话,应该会更加的方便看一点

    image.png

    为了能够更好的展示效果,我们加一个时间展示的功能,这样大家能够更加清楚的看到开始时间和结束时间

    我们加多两个展示的单元格

    image.png

    代码上面也稍作修改

    Dim RunClk As Boolean
    
    Sub test()
    
    If RunClk = True Then
    
        Range("G2") = TimeValue(Now)
    
        Application.OnTime Now + TimeValue("00:00:10"), "msg"
    
    End If
    
    End Sub
    
    Sub msg()
    
    Range("H2") = TimeValue(Now)
    
    MsgBox "计时结束,请赶紧下一项任务,杜绝996"
    
    End Sub
    

    最终的效果就是如果我们点击了开始计时的按钮,就会开始计时,然后再开始时间写入我们开始做任何的时间,等到时间到了我们指定的时间之后,弹窗时间就会展示弹窗的时间,正确的来说,两者应该是相差10S的,因为我们设定的就是相差10s.

    弹窗了,我们来看看最终的结果,开始时间和弹窗事件之间正好相差了10S,得到了我们的要求,完美。

    image.png

    代码分析

    今天的某些代码可能超出了大家认识的范畴,不过不要紧,我们后面都会分享到的,今天我们先来大致的分析一下这个功能是如何实现的

    Dim RunClk As Boolean
    

    这是一个全局变量,代表着鼠标是否按钮这个动作,如果鼠标按下了,就执行这段代码

    If RunClk = True Then
    
        Range("G2") = TimeValue(Now)
    
        Application.OnTime Now + TimeValue("00:00:10"), "msg"
    
    End If
    

    如果没有就不会有任何的操作

    再IF条件模块中,

        Range("G2") = TimeValue(Now)
    

    代表将当前的时间也就是开始时间展示在G2单元格,然后就是今天的重点了。

    ontime(earliestime,produre,lastestime,schedule)
    

    看起来好长,其实我们只需要记住两个参数就可以了,第一个是开始时间,就是计时程序开始的哪个时间段,然后第二个参数就是命令,比方说案例中,我们需要展示的是,时间到了之后弹窗提示,那么弹窗就是一个命令,不过需要注意的是,这个弹窗命令需要重新写一个程序,不能接着上面的程序里面写,也不能够直接写

    MsgBox "计时结束,请赶紧下一项任务,杜绝996"
    

    两点在使用的时候要注意。

    Now + TimeValue("00:00:10")代表的就是10S之后的时间,如果大家想要实现其他的时间间隔,也可以根据需要更换其他的时间,都是可行的。

    相关文章

      网友评论

          本文标题:Excel VBA之日期篇 4.3 巧自定义提醒闹钟 防止走神全

          本文链接:https://www.haomeiwen.com/subject/vfmcxltx.html