乐于分享
好东西不私藏

定时在Excel中执行任务

定时在Excel中执行任务

      首先说声抱歉,因为旧历新年的缘故,停更了不短的时间。在之前的文章里面,大多都是具体的案例,看了读者的留言,还是希望从基础写一些案例,方便大家从0开始了解VBA这个工具。
        Excel有很多分支,包括但不限于基础制表、数据录入、数据分析、函数、图表、PQ+PB系列以及VBA,当然PQ+PB系列在WPS中不通用,而VBA功能WPS是提供给专业版用户或者定制客户的(WPS提供了JS宏功能,这个又属于另一个学科,目前没有可靠的参考资料进行学习)。在我看来,既简便,又功能强大的当属VBA,没有之一。这里就不详细描述它能干吗了,在之前的文章中有过介绍,有兴趣的朋友可以翻一下过往记录。
        今天简单的介绍一个实用的功能,间隔一个固定时间执行某个功能,这个功能有很多应用场景,比如调用一段代码,定时在网页里面下载一些资料(某些网站,几分钟一更新,自己脑补是什么网站);比如电脑没有操作多少时间之后执行什么操作等等。
        Excel并没有提供像VB.NET的定时器控件,但是他有一个特殊的VBA函数叫做OnTime,可以指定间隔时间或者某个具体的时间点来执行一个任务,具体就不作介绍了,我们直接上代码。
Option ExplicitDim 时间 As Date'时间变量为公用变量,主程序和间隔程序都需要调用Sub 间隔时间() '调用程序,可以指定间隔时间多久运行一次主程序    时间 = Now() + TimeValue("00:00:01") '间隔一秒执行    Application.OnTime 时间, procedure:="运行程序"End SubSub 运行程序() '主程序,运行的时候,点击这个    Sheet2.Range("a1").Value = "'" & Format(Time(), "hh:mm:ss")    'Sheet2为codeName,意为指定工作表,避免将其他工作表单元格A1内容覆盖    Call 间隔时间    '调用间隔时间程序End SubSub 停止运行() '终止程序运行    Application.OnTime 时间, "运行程序", , False    '意为终止运行程序End Sub
        大概解释一下代码的功能:
第1行:Option Explicit,这个是在设置了强制变量声明之后,自动出现的,不设置你也可以手工录入在第一行,表示所有使用的变量必须用dim或者public这些先声明才可以使用;
第3行:定义一个名为“时间”的公共变量,方便下面的程序调用;
第6-9行,是一个调用程序,里面主要写的是间隔多久,或者在哪个时间点,执行一段程序;
第11-16行,是主程序,即要执行的任务,并调用间隔时间程序,以实现间隔同一时间执行同一段程序;
第18-21行为终止程序,即停止连续执行。
        当然,任务是在间隔程序里面还是在运行程序里面,或者是其他过程中实现并不重要,这段程序主要是提供一种思路,就是可以指定时间执行一次或者连续多次的任务。
        在表格中插入两个按钮,一个指向运行程序,一个指向终止程序即可。程序运行之后,在指定的工作表的单元格A1就会连续显示当前时间(精确到秒,变通实现秒表的显示)。注意Sheet2是CodeName,这个是指的当前工作簿(即写代码的工作簿)新建的第二个工作表(无认这个工作表的位置和名称是什么,Sheet2永远叫这个名称)。
        好了,今天的分享就到这,若有什么需要了解的,可以留言区留言,也可以直接联系作者,微信471131804,可以探讨,也可以发布任务。同时给大家拜个晚年,祝所有人新的一年发大财,阖家欢乐!!
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » 定时在Excel中执行任务

评论 抢沙发

5 + 1 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮