ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: andysky

[分享] 图解:定义变量的重要性

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-4-2 00:40 | 显示全部楼层
本帖已被收录到知识树中,索引项:数据类型和基本语句
andysky 发表于 2013-3-25 14:22
图示三:

在不确定时可以这么做:
   a = [a1]
    b = [b1]
    MsgBox CByte(a) + CByte(b)

甚至有时候,不管你是否定义了变量类型,套用数据类型转换函数得到正确结果是必须的。

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2013-4-2 00:40
在不确定时可以这么做:
   a = [a1]
    b =

很纳闷了,定义好,还是不定义好呢?能不能给我这菜鸟一个最终的结论?

点评

这个随你,别人没法给你答案,我都说了,论坛分两派嘛  发表于 2013-4-2 01:11

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:10 | 显示全部楼层
lzyamo3057 发表于 2013-4-2 01:05
很纳闷了,定义好,还是不定义好呢?能不能给我这菜鸟一个最终的结论?

自已衡量,好处、坏处全都摆在你的面前了。自己认为哪种更适合自己就选哪种。这种事本身就没有对错,只有自己的体会。

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:12 | 显示全部楼层
本帖最后由 香川群子 于 2013-4-2 01:15 编辑
joforn 发表于 2013-4-2 00:37
其实一直以来,变体类型都是不被推荐的。请先不运行下面的代码,试计算一下结果是什么?运行后看下输出是 ...


不用整这么复杂吧,这样就得到同样的效果了:
  1. Sub Test()
  2.   a = 100.00001
  3.   b = 12345.1
  4.   c = 12345.1
  5.   d = 100.00001
  6.   
  7.   e = a + b
  8.   f = e - c '计算结果貌似=100.00001
  9.   MsgBox f = a  '返回 False
  10.   MsgBox f = d  '返回 False
  11.   
  12. End Sub
复制代码
更简单一些:
  1. Sub Test()
  2.   a = 100.00001
  3.   b = 12345.1
  4.   
  5.   c = a + b
  6.   d = c - b '计算结果貌似=100.00001
  7.   MsgBox d = a  '实际判断返回 False
  8.   
  9. End Sub
复制代码

点评

我那个语句最主要的目的是演示A+B和B+A的区别。  发表于 2013-4-2 01:18

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:16 | 显示全部楼层
香川群子 发表于 2013-4-2 01:12
不用整这么复杂吧,这样就得到同样的效果了:

不一样的计算语句,不一样的原因。

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:20 | 显示全部楼层
关键在于原因,而不是在于用什么方法。因为像那种计算语句两条都是正确的。

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2013-4-2 01:12
不用整这么复杂吧,这样就得到同样的效果了:更简单一些:

那是定义好,还是不定好呢?定义了Currency,结果为true呢

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lzyamo3057 发表于 2013-4-2 01:05
很纳闷了,定义好,还是不定义好呢?能不能给我这菜鸟一个最终的结论?

如果你已经意识到dim有作用,就学习并使用dim吧。

在学习过程中如果有出现问题,那就痛并快乐着吧。


…………分割线…………

我仅仅建议,自己还没有做好接触并使用dim的新手、初学者,
可以暂时保留,以后再学,而不必在一开始就投入太多的时间精力。

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:22 | 显示全部楼层
香川群子 发表于 2013-4-2 01:21
如果你已经意识到dim有作用,就学习并使用dim吧。

在学习过程中如果有出现问题,那就痛并快乐着吧。

你不觉得,你无形中,会有一种想分出胜负的想法吗?

点评

这就是性格嘛  发表于 2013-4-2 01:28

TA的精华主题

TA的得分主题

发表于 2013-4-2 01:29 | 显示全部楼层
lzyamo3057 发表于 2013-4-2 01:22
你不觉得,你无形中,会有一种想分出胜负的想法吗?

哦。我真诚地支持你使用 option explicit 和 dim

优点很多,也并不麻烦。

关键是你内心里已经愿意使用dim了。这个我看得出来。

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-24 22:03 , Processed in 0.046581 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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