ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8142|回复: 9

[求助] 间歇性报错:“方法'ontime'作用于对象'_application'时失败”的原因

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-27 12:47 | 显示全部楼层 |阅读模式
各位大侠,最近小弟编写了一个userform,在窗体中嵌入了一个textbox显示实时时间,但是在关闭userform时,大多数时候都是很正常的,但是间歇性地会出现报错(频率大概是6-7次正常后,就有一次报错),报错显示以下内容:

运行时错误'1004'
方法ontime作用于对象_application时失败

小弟用调试,结果发现程序停留在了下面的这段命令上:

Public Sub 取消实时时间()
Application.OnTime Now + TimeValue("00:00:01"), "实时时间", , False
End Sub

请问各位大侠,这是什么原因导致的呢?为什么会间歇性地报错呢?有没有什么改进方法?小弟先行拜谢!

附件.rar (50.54 KB, 下载次数: 38)

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-27 13:12 | 显示全部楼层
请各位高手不吝赐教啊,小弟谢谢了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-27 16:23 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-1 16:34 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-3-1 18:41 | 显示全部楼层
猜测:Now + TimeValue("00:00:01")所指定的时间计划不存在,当然出现错误了。
解决方法:建立一个变量用于存储指定的时间,比如 theTime! 这一单精度浮点型变量,然后取消计划的语句为Application.OnTime theTime, "实时时间", , False

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-2 07:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ngnndkkk 发表于 2013-3-1 18:41
猜测:Now + TimeValue("00:00:01")所指定的时间计划不存在,当然出现错误了。
解决方法:建立一个变量用于 ...

你好,谢谢你的回答,但是我觉得问题应该不是在这里,NOW + TIMEVALUE("00:00:01")这个时间是能够被VBA识别的,我后来自己分析,觉得问题可能是出在程序的循环上面,可能是当新的循环正在进行的时候,如果有程序去关闭它的话,可能就报错了,但是不是很确定,所以请大家帮助一起分析下

TA的精华主题

TA的得分主题

发表于 2013-11-1 20:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我也遇到了这个问题,好像手动启动没有问题的代码,但是打开其它一些excel文件后,再跑这个就出错。
好像文件处于protectedview模式下就会报这个错,因为把处于protectedview模式下的文件改成可编辑以后,程序就可以往下运行了。
但是又不是所有的protectedview模式下的文件打开都有这个问题,郁闷啊。

TA的精华主题

TA的得分主题

发表于 2014-2-10 17:55 | 显示全部楼层
Public Sub 取消实时时间()
On Error Resume Next '加上这一句试试
Application.OnTime Now + TimeValue("00:00:01"), "实时时间", , False
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2017-11-15 12:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
取消ONTIME时,要求具有相同 ProcedureEarliestTime,还有就是ONTIME并没有触发,这三个条件都满足了才能取消成功的。
否则会出错的,你这表现应该就是取消不成功造成的,
加上这个  On Error Resume Next 就可以了。  

TA的精华主题

TA的得分主题

发表于 2018-3-7 14:37 | 显示全部楼层
我也是同样的问题。。。间歇性报错所以感觉很莫名其妙。。想了好久终于解决了。。原理其实很简单,就是ls说的取消ontime的条件不对。。
具体一点,其实问题在于earliest time不同,因为直接用now+作为ontime参数的话,运行取消的时候可能有时间差,导致取消的now+和ontime的now+不同,所以解决办法就是用变量存一下就好了。。。思维盲区啊。。。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-25 02:21 , Processed in 0.043792 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表