ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 关于变量声明的讨论

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-4 22:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:数据类型和基本语句
无聊,裙子就是想让门外的入门简单点,可有人就是非要说不会宫庭礼仪入门就不是君子。可君子本来就不是裙子呀。

点评

你搞错了,我们不反对她入门省事的观点,我们反对的是她绝对打倒的表达方式,这会误导新来的小朋友滴  发表于 2013-2-5 01:19

TA的精华主题

TA的得分主题

发表于 2013-2-5 00:00 | 显示全部楼层
老祖宗说,不积跬步,无以至千里,赞同楼主观点。

TA的精华主题

TA的得分主题

发表于 2013-2-5 09:26 | 显示全部楼层
香川群子 发表于 2013-2-3 00:18
不谈编程,仅就VBA新手写宏代码的事为例子,

有一些变量只能使用Variant,用了其它变量类型反而不好… ...

同意,新手有时候根本不知道应该定义什么类型的,定义以后代码出错时,总是找不到为什么。如果不定义的话,在调试过程中从变量窗口中可以直接看到变量的的类型,倒是有助于理解。但是在熟悉提高后,倒还是建议进行定义。

TA的精华主题

TA的得分主题

发表于 2013-2-5 09:27 | 显示全部楼层
本帖最后由 chenzyyysl 于 2013-2-5 09:39 编辑
chenzyyysl 发表于 2013-2-4 22:23
无聊,裙子就是想让门外的入门简单点,可有人就是非要说不会宫庭礼仪入门就不是君子。可君子本来就不是裙子 ...


liucqa  你搞错了,我们不反对她入门省事的观点,我们反对的是她绝对打倒的表达方式,这会误导新来的小朋友滴  发表于 2013-2-5 01:19

好像她也就是用绝对打倒的方式表达出对有些为人师者绝对化的讲解的反对,再说你在一楼的例子是针对初学者的吗?不要说VBA,就是在表中,很多人遇到文本型数字处理出错还找不到原因呢。

其实各个大大的说法从技术上讲都是正确的,但问题在于以高手的心态在看待问题,没有从入门者的角度去理解,我认为这点上裙子做的比各位到位一些。

再以楼主的例子来讲,先声明A为文本再A=123;直接A=123;直接A=“123”;先声明A为文本再A=“123”,各位认为这4种做法该如何排序呢?

点评

例子不完全相同,但是也有共通的地方。只是为了借过来帮助换位理解和思考  发表于 2013-2-5 23:19

TA的精华主题

TA的得分主题

发表于 2013-2-5 11:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
andysky 发表于 2013-2-3 14:09
难道以前见过?

wuxiang_123 完全正确。

TA的精华主题

TA的得分主题

发表于 2013-2-5 21:31 | 显示全部楼层
看到多数人都不反对“养成写代码时尽量声明变量是很有必要的”,那我就说说“是一开始就养成习惯好,还是最后来纠正习惯好”。

举个例子:

你小时候有写过倒笔画的字吗?你现在还在写倒笔画的字吗?你有发现写倒笔画的确给你带来一些小小的影响吗?
重要的是:你有想过改正自己倒笔画的写法,却发现很难改过来吗?
我想这些很多人都有过。
按理说:我们的目的就是写字,不管我用什么笔顺写,用什么方式写,能写成字就是了,能让自己和别人看出我写的就是那个字就是了,为什么还要按笔顺写呢?
这个问题的答案你别说你不知道。

习惯成自然,一量养成的习惯很难。这个你能否认吗?
不管你只想读到几年级,只想认识几个字,但是你肯定都希望自己写的字最符合规范,都希望自己的字能写得更漂亮。
现在正在写倒笔画的你,应该很希望当初自己就能按正确笔顺来写某个字而养成正确的习惯。

试想,如果教你写字的老师并不教你笔顺,而直接在黑板上写个字,告诉你:不管你怎么写,大家只要照着这个字写,能写出来就是最优秀的。
你猜你会怎样写?你猜你今天会怎样写字?
再请问:你希望你的孩子遇到这样一位老师吗?

所以:我非常支持初学者应该掌握声明变量的方法,并尽量养成在代码中声明变量的习惯

是的,不声明变量也能让程序正常运行,就算程序出错,这些人也能很轻松地找到错误之处。但别忘了:你现在是在掌握了声变变量的方法,并且对使用VBA写代码有一定基础的人了,对里面各种不同的数据类型以及可能会发生的错误及原因有了一定认识的基础了,你已经清楚知道不声明变量和声变变量的区别,并且在写代码时会注意避开某些因此而出现的错误。而不像初学者那样脑中一片茫然。你一个对一切清楚掌握的人,对一个什么都不懂的人说:别管那些基础的,直接上。那你让初学者上什么呢?声明变量是基础,难,让他避开,那引用对象难吧?也让他避开?

如果嫌学习如何声明变量感到难,也要避开的话,循环语句难吧?也要让初学者避开吗?因为不使用循环语句,那些任务也能完成啊,不是吗?

点评

用举例的方法说明这个问题不好,同样可以举小时你说“吃饭饭”,现在你还说吗?想要花有送你好了  发表于 2013-2-5 23:12

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-2-5 23:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
记得枫老师是帮助过我的,我先感谢了。
不过在这个问题上,枫老师针对我这样的“初学者”说的没错,但我刚才帮了一个初学者,一个问题要发2个贴子问,而事实上我给的2个答案都是能解决他提出的问题但未必是他真正想要的。这样的初学者,以老师的要求,要是没有学分压力的自学,可能不会继续学下去了。
http://club.excelhome.net/forum. ... p;page=1#pid6709582
http://club.excelhome.net/forum. ... p;page=1#pid6709801

点评

你也帮助过我,在论坛谁没被谁帮过啊?都说感谢,谁感谢得过来?都是交流  发表于 2013-2-5 23:44

TA的精华主题

TA的得分主题

发表于 2013-2-5 23:55 | 显示全部楼层
chenzyyysl 发表于 2013-2-5 23:34
记得枫老师是帮助过我的,我先感谢了。
不过在这个问题上,枫老师针对我这样的“初学者”说的没错,但我刚 ...

我看了你的解决方法,挺好啊。
没满足另人的需求,也许是别人没把问题讲清楚,而你只是从他现有的表述中给出适合的答案。呵呵

TA的精华主题

TA的得分主题

发表于 2013-2-6 09:08 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-2-6 19:01 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习了!!!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-23 07:16 , Processed in 0.036551 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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