当前位置: 首页 > news >正文

VBA经典应用69例应用8:取消预设任务

《VBA经典应用69例》(版权10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:VBA经典应用69例应用8:取消预设任务

分享成果,随喜正能量】197 不要在乎他人的评论,不必理论与他人有关的是非,你只要做好自己就够了。苔花如米小,也学牡丹开。无论什么时候,都要有忠于自己的勇气,去做喜欢的事,去认识喜欢的人,去过期待的日子,去圆满自己的心。有理想,有热爱,然后全力以赴。。

应用8 利用VBA,完成自动运行任务的预设

这一专题,我们讲解利用VBA来预设某个任务自动运行。这讲的内容在VBA中也是比较有用的,可以完成诸如动画的效果,以及各种自己期望的任务在某个时间自动运行。我们主要是利用Application.OnTime来完成这种设置。

OnTime与Application.Wait方法非常相似,使用这两种方法,可以设计在特定时间运行某项任务(过程)。OnTime和Wait的一个主要区别是,对于Wait方法,Excel的操作将被挂起,但OnTime不会冻结你的计算机。运行OnTime语句后,可以继续使用Excel工作簿。

5 取消预设任务

我们在上面的各个例子中分别讲解了任务预设的各种应用场景,这段的内容是我们如何取消这种预设的任务。在运行OnTime语句以创建计划任务之后,可以通过再次运行OnTime语句来取消它,该语句的值与EarliestTime和Procedure相同,但将schedule参数设置为False。

以下声明取消了mynzB的计划任务。

例如,我们mynzB 过程的预设如下:

Application.OnTime TimeValue("20:45:00"), "mynz_1",我们为了取消这种预设可以用下面的代码:

Sub mynzS()

Application.OnTime EarliestTime:=TimeValue("20:45:00"), Procedure:="mynz_1", Schedule:=False

End Sub

代码截图:

在上述mynzS取消预设设置之前,mynzB是在开启状态的,如果没有开启,我们看下面的运行结果:

会提示给用户关联失败。

如何避免这种意外出现呢?我们要设置当预设开启后,才能取消,如果没有预设是无法取消的。我们看下的完整代码,这段代码是点击按钮mynzE后在“A1”单元格数字累加,点击mynzF按钮后停止。

Sub mynzE()

myUU = True

Worksheets(1).Shapes.Range(5).Visible = False

Worksheets(1).Shapes.Range(6).Visible = True

Range("A1") = Range("A1") + 1

Application.OnTime Now + TimeValue("00:00:01"), "mynzE"

End Sub

Sub mynzF()

If myUU = False Then Exit Sub

Application.OnTime Now + TimeValue("00:00:01"), "mynzE", , False

Range("A1") = ""

Worksheets(1).Shapes.Range(6).Visible = False

Worksheets(1).Shapes.Range(5).Visible = True

myUU = False

End Sub

Sub mynzG()

Set myDocument = Worksheets(1)

myDocument.Shapes.Range(Array(5, 6)).Visible = True

End Sub

代码截图:

代码的讲解:

1)Public myUU As Boolean 设置全局变量myUU为布尔型变量,这个默认值为false

2) myUU = True

Worksheets(1).Shapes.Range(6).Visible = True

Worksheets(1).Shapes.Range(5).Visible = False

点击这个按钮Shapes.Range(5)后,那么第6个按钮会出现,第5个按钮会隐藏。

3)Range("A1") = Range("A1") + 1

Application.OnTime Now + TimeValue("00:00:01"), "mynzE"

每隔1秒钟在单元格“A1”中累加1.

4)If myUU = False Then Exit Sub 如果点击第7个按钮,当myUU = False时,则退出。

5)Application.OnTime Now + TimeValue("00:00:01"), "mynzE", , False

Range("A1") = ""

取消mynzE的程序运行预设。

6)Worksheets(1).Shapes.Range(6).Visible = False

Worksheets(1).Shapes.Range(5).Visible = True

第6个按钮隐藏,第5个按钮显示

7)myDocument.Shapes.Range(Array(5, 6)).Visible = True

显示工作表中的5到6所有的按钮。

我们看下面的代码运行:

点击开始按钮mynzG:

点击关闭按钮mynzF:

恢复按钮点击mynzG:

总结:程序的预设运行是非常值得研究的一个课题,本专题深入地讲解了Application.OnTime

方法的利用,包括如何预设,如何取消预设,相信大家一定会有所收获,如果自己认为可以理解了Application.OnTime中各个参数的用法,不妨看看下面今日内容回向的问题。

今日内容回向:

1 如何理解Application.OnTime中各个参数的意义?

2 如何取消程序的预设?

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:



http://www.dtcms.com/a/269594.html

相关文章:

  • (三)C#使用yolo
  • 在教育领域中,如何通过VRM分片错序对视频进行加密?
  • git学习:首次创建仓库
  • ubuntu 运行脚本打开WIFI adb
  • YOLO在自动驾驶交通标志识别中的应用与优化【附代码】
  • Qt:图片切割
  • 代码详细注释:演示如何使用dup()系统调用复制文件描述符
  • Linux操作系统:再谈虚拟地址空间
  • const char* 、char*和char[]的区别
  • MySQL数据库访问(C/C++)
  • 恒创科技:香港站群服务器做seo站群优化效果如何
  • 2025年数据挖掘与计算机科学国际会议 (DMCS 2025)
  • 基于Docker Compose部署Traccar容器与主机MySQL的完整指南
  • 专题:2025数据资产AI价值化:安全、战略与应用报告|附400+份报告PDF、原数据表汇总下载
  • uniapp 监听物理返回按钮
  • 分水岭算法:图像分割的浸水原理
  • 视频号账号矩阵运营中定制开发开源 AI 智能名片 S2B2C 商城小程序的赋能研究
  • 【王树森推荐系统】召回11:地理位置召回、作者召回、缓存召回
  • 【Rust base64库】Rust bas64编码解码详细解析与应用实战
  • ​​​​​​​营销费用管理,如何驱动快消企业营销投资战略升级
  • 萌新赛第(一)场
  • IEEE Fellowe助力 2025年物联网、数据科学与先进计算国际学术会议(IDSAC2025)
  • C++——string的了解和使用
  • 将oracle表字段json字符串分解提取并返回单列表
  • Redis基础数据结构
  • 深度学习与图像处理 | 基于传统图像处理的自动驾驶车道线检测
  • XSLT注入与安全修复方法
  • 【快手】数据挖掘面试题0002:求某地铁站每日客流量,乘地铁经过、进出站人都包括在内
  • C#随机数生成全面详解:从基础到高级应用
  • 【ROS2 自动驾驶学习】03-ROS2常用命令