排行
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
中国数据库
向量数据库
时序数据库
实时数据库
搜索引擎
空间数据库
图数据库
数据仓库
大调查
2021年报告
2022年报告
年度数据库
2020年openGauss
2021年TiDB
2022年PolarDB
2023年OceanBase
首页
资讯
活动
大会
学习
课程中心
推荐优质内容、热门课程
学习路径
预设学习计划、达成学习目标
知识图谱
综合了解技术体系知识点
课程库
快速筛选、搜索相关课程
视频学习
专业视频分享技术知识
电子文档
快速搜索阅览技术文档
文档
问答
服务
智能助手小墨
关于数据库相关的问题,您都可以问我
数据库巡检平台
脚本采集百余项,在线智能分析总结
SQLRUN
在线数据库即时SQL运行平台
数据库实训平台
实操环境、开箱即用、一键连接
数据库管理服务
汇聚顶级数据库专家,具备多数据库运维能力
数据库百科
核心案例
行业报告
月度解读
大事记
产业图谱
我的订单
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
资讯
活动
大会
课程
文档
排行
问答
我的订单
首页
专家团队
智能助手
在线工具
SQLRUN
在线数据库即时SQL运行平台
数据库在线实训平台
实操环境、开箱即用、一键连接
AWR分析
上传AWR报告,查看分析结果
SQL格式化
快速格式化绝大多数SQL语句
SQL审核
审核编写规范,提升执行效率
PLSQL解密
解密超4000字符的PL/SQL语句
OraC函数
查询Oracle C 函数的详细描述
智能助手小墨
关于数据库相关的问题,您都可以问我
精选案例
新闻资讯
云市场
登录后可立即获得以下权益
免费培训课程
收藏优质文章
疑难问题解答
下载专业文档
签到免费抽奖
提升成长等级
立即登录
登录
注册
登录
注册
首页
专家团队
智能助手
精选案例
新闻资讯
云市场
微信扫码
复制链接
新浪微博
分享数说
采集到收藏夹
分享到数说
首页
/
VBA“定时器”的实现
VBA“定时器”的实现
VBA语言専攻
2022-01-05
330
【分享成果,随喜正能量】人心齐,泰山移。有一种力量可以无坚不摧,那就是团结的力量;有一种力量可以让人坚韧不拔,也是团结的力量。只要我们同心合力,定能度过难关。
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“
积木编程”思想
。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第31讲:VBA“定时器”的实现
第三十一讲 利用
VBA代码实现“定时器”功能
大家好,今日继续讲解我们的VBA代码第31讲,利用VBA代码实现“定时器”功能。
Excel VBA并没有提供定时器控件,但是用户可以通过Application对象的OnTime方法实现简单的定时器功能。
1 OnTime方法
应用于Application对象的OnTime方法能够安排一个过程在将来的特定时间运行,语法如下: expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
参数:
a) expression是必需的,返回一个Application对象。
b) EarliestTime是必需的,设置指定的过程开始运行的时间。使用Now + TimeValue(time)可以安排从现在开始经过一段时间之后运行某个过程,使用TimeValue(time)可以安排在指定的时间运行某个过程。
c) Procedure是必需的,设置要运行的过程名称。
d) LatestTime是可选的,设置过程开始运行的最晚时间。例如将参数LatestTime设置为EarliestTime+10,当时间到了EarliestTime时如果Excel不处于空闲状态,那么Excel将等待10秒,如果在10秒内Excel不能回到空闲状态,则不运行该过程。如果省略该参数,Excel将一直等待到可以运行该过程为止。
e) Schedule是可选的,如果其值为True(默认值),则安排一个新的OnTime过程,如果其值为False,则清除先前设置的过程。
2 实现定时器功能的代码及代码解读
如下面的代码所示:
Sub mynz_31_1() '利用VBA代码实现"定时器"功能
【代码见教程】
End Sub
代码解析:mynz_31_1过程,使用Application对象的OnTime方法循环调用MyStartTimer过程实现每隔一秒钟运行一次MyStartTimer过程,从而在B1单元格中不断地显示程序累计运行时间。
1)第2行代码将B1单元格的值在原有的数字上加1。
2)第3行代码使用OnTime方法在1秒后重新调用mynz_31_1过程,使B1单元格的值不断的加1,从而显示程序累计运行时间。
取消定时的代码如下:
Sub mynz_31_2() '利用VBA代码实现"定时器"功能
【代码见教程】
End Sub
代码解析:Sub mynz_31_2过程取消mynz_31_1过程的计时。
1) 第2行代码错误处理语句,因为如果还没有运行mynz_31_1过程而先运行mynz_31_2过程取消定时,程序会提示错误,因此使用On Error GoTo Line语句在错误发生时执行第7行代码显示一个提示消息框。
2)第3行代码将mynz_31_1过程的Schedule参数设置为False,取消定时设置。
先看下面的代码窗口:
运行窗口:
停止窗口:
今日内容回向:
1 OnTime 方法的作用是什么?
2 EXCEL中定时器是如何实现的?
本讲内容参考程序文件:VBA代码解决方案修订(1-48).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】爱心得匠意,则杰作在望。趁一切还来得及,做自己喜欢的事,就是一生最幸福的事!随着自己的热爱去做事,就没有不能成功的。
定时器
vba
教程
文章转载自
VBA语言専攻
,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
领墨值
有奖问卷
意见反馈
客服小墨