ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 定义变量在效率上有何优势

定义变量在效率上有何优势

作者:绿色风 分类: 时间:2022-08-18 浏览:100
楼主
罗刚君
编写VBA代码时,准确地定义变量对于新手来说比较难.
但是定义变量对于提升代码的效率却大有帮助.
定义变量能提升效率,大家都似乎都听说过,但却极少有人去证实它.
本帖展示定义变量与不定义变量时效率差异多少.
A定义变量
  1. Sub 定义变量的优势()
  2.     Dim a As Byte, b As Byte, c As Integer, d As Integer, e As Long, f As Long, g As Double, h As Double, i As Date, j As Date
  3.     i = Timer
  4.     g = 166.666
  5.     For c = 1 To 1000
  6.         For b = 1 To 250
  7.             For a = 1 To 250
  8.                 e = CLng((c + b)) * c - b - a - c
  9.                 f = CDbl(c) * a / b
  10.                 d = c - b + a
  11.             Next a
  12.             g = g + CDbl(c) * b + a / b
  13.         Next b
  14.     Next c
  15.     j = Timer
  16.     MsgBox Format(j - i, "0.00秒")
  17. End Sub

以上代码在笔者的机器中执行时间有8.8秒,而以下代码未定义变量,则执行时间超过22秒
即不定义变量的执行时间逼近定义变量的程序的三倍

  1. Sub 定义变量的优势()
  2.     i = Timer
  3.     g = 166.666
  4.     For c = 1 To 1000
  5.         For b = 1 To 250
  6.             For a = 1 To 250
  7.                 e = CLng((c + b)) * c - b - a - c
  8.                 f = CDbl(c) * a / b
  9.                 d = c - b + a
  10.             Next a
  11.             g = g + CDbl(c) * b + a / b
  12.         Next b
  13.     Next c
  14.     j = Timer
  15.     MsgBox Format(j - i, "0.00秒")
  16. End Sub

2楼
0Mouse
恩,看来强制声明变量自有其道理所在啊!养成定义变量的习惯!
3楼
wenwuxiaozi
因为不定义,所有变量都按照variant类型来计算的
4楼
LoveJinLee
定义变量应该是写程序的人,应该有的最基本的素养。
也便于阅读,和查错~
5楼
水星钓鱼
定义变量之所以快是因为定义变量指定变量的类型在占用内存上比直接用variant类型占用的少。学习下。
6楼
twozisan
實際測試後 發現 上方用 4.25sec 下方用13.2sec 定義變量 有需要
7楼
398829134
哇!差距这么大啊,学习论,幸亏我早已养成逢变量必定义的习惯了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap