深入探讨Excel Application对象OnTime方法的死穴
作者:傅华碧
vba编程技巧来源:《中国科技博览》2016年第02
        [ ]因为Excel集数据库和程序设计于一体,令广大VBA编程爱好者前赴后继地奔走在Excel考试系统路上,定时器作为考试系统的基本要求,而Excel却没有Timer,使爱好者乱了方寸,幸好Application对象OnTime方法带来了一线生机,但它又无法感知系统时间被修改的弊端,成了Excel考试系统的死穴,又让爱好者垂头丧气。
        [关键词]探讨 Excel Application对象 OnTime方法
        中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X201602-0351-01
        Excel考试系统的重点和难点都是定时器的实现,但定时器作为任何考试系统的基本要求,又无法回避,怎样彻底实现Excel考试系统的定时器功能呢?
        一、实现定时器的基本方法
        虽然Excel VBA没有提供定时器,但可以通过Application对象的OnTime方法实现简单的定时器功能,OnTime方法能够安排一个过程在将来的特定时间运行,既可以是具体指定的某个时间,也可以是指定的一段时间之后。
        语法如下:Application.OnTime EarliestTimeProcedureLatestTimeSchedule
        OnTime方法中递归调用Procedure过程,就可实现定时器。
        二、致命的死穴
        尽管OnTime方法可以具体指定的某个时间和指定的一段时间之后两种方式执行Procedure,但本质上都是具体指定的某个时间,因此一旦修改系统时间,不管是提前或延后时间,让其错过指定时刻,或让指定时刻延后数小时或更长,导致OnTime方法失效,从而失去定时器的功能,成为Excel考试系统的死穴。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。