ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 菜鸟求助,如何计算函数运行时间

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-12-30 17:19 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
如题,我想知道运算某个单元内函数并返回结果所用的时间
还有刷新工作表(SHIFT+F9)、工作簿(F9)所用的时间
这个要怎么用VBA实现,在下VBA小白,还请各位大侠帮忙

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-6 09:16 | 显示全部楼层
果真没有人回复,55555555

TA的精华主题

TA的得分主题

发表于 2016-1-6 09:24 | 显示全部楼层
这个问题或许要等到微软下次升级了。
自己写的代码可以用Timer实现。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-6 09:41 | 显示全部楼层
蓝桥玄霜 发表于 2016-1-6 09:24
这个问题或许要等到微软下次升级了。
自己写的代码可以用Timer实现。

版主的意思是不是,源代码没有计时功能
只能在VBA里用Timer来记录调用Excel函数
我试过,可是怎么通过程序判断调用过程,比如重新计算全表,已经结束了呢?

TA的精华主题

TA的得分主题

发表于 2016-1-7 12:44 | 显示全部楼层
代码一开始用:
t = Timer
最后用:
MsgBox Timer - t

TA的精华主题

TA的得分主题

发表于 2016-6-1 09:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-6-25 11:29 | 显示全部楼层
蓝桥玄霜 发表于 2016-1-7 12:44
代码一开始用:
t = Timer
最后用:

前辈好!目前正在按《别怕EXCEL VBA其实很简单》练VBA时间的用法。发现EXCEL在计算大量数据时采用数组公式时速度确实很慢并可能死机,所以上面楼主的求函数计算花费时间的方法就是:新建一个按钮,单击按钮执行测试程序,或打开工作簿时执行程序,或其它方法触发程序运行。《  *》书中最后二页就是TIMER-T得出的运行时间差的方法。程序要写上清空工作表内容的代码,写上T=TIMER,再写上数据导入工作表的代码,再写上MSGBOX弹窗代码。也可以在程序运行前先手工清空工作表内容。由于工作表已设好公式,公式未计算完毕前,弹窗并不出显示,只有公式完成全部计算才会显示弹窗,所以程序执行时间包括数据导入时间与计算的时间。

TA的精华主题

TA的得分主题

发表于 2017-6-25 11:40 | 显示全部楼层
蓝桥玄霜 发表于 2016-1-7 12:44
代码一开始用:
t = Timer
最后用:

同时,我在测试程序中用上《EXCEL VBA实战技巧精粹修订版》的“数字秒表”的代码后,代码不能计秒并显示,只在公式计算完毕弹出弹窗后才会计秒,不知如何改。我的意思是既能看到进度,又能看到最终结果,用秒表代替进度条的作用。我的一个表要花90秒左右才能完成计算。

TA的精华主题

TA的得分主题

发表于 2017-6-25 11:48 | 显示全部楼层
蓝桥玄霜 发表于 2016-1-7 12:44
代码一开始用:
t = Timer
最后用:

还有,ONTIME方法,在提醒“你已连续工作一个小时”,再调用ONTIME,第二次提醒“你已连续工作二个小时”该怎么写代码?“一个小时、二个小时、、、”怎么改为用函数变量?我用NOW()或TIME()减不出来时间差。

TA的精华主题

TA的得分主题

发表于 2024-4-12 09:47 | 显示全部楼层
Sub FunctionTiming()     Dim startTime As Double     Dim endTime As Double          ' 关闭自动计算     Application.Calculation = xlCalculationManual          ' Select the cell where the function is located     Selection.Calculate          ' Get the start time     startTime = Timer          ' Calculate the function     Selection.Calculate          ' Get the end time     endTime = Timer          ' 打开自动计算     Application.Calculation = xlCalculationAutomatic          ' Display the calculation time     MsgBox "Calculation time: " & (endTime - startTime) & " seconds"         End Sub
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-2 06:55 , Processed in 0.051236 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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