ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 面向VBA初学者→ VBA代码中有关【变量】的误区

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-2-3 00:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习了。变量声明的好处在于别人能更好理解你的代码,也是有助于新手学习的。我觉得最好的例子是灰袍大师,大师代码用变量比较少用平常看到的i j k m n 等之类,而是用容易理解的英文(我英文一字不识,但有在线翻译)。个人觉得虽然代码多出不少,但这种为人考虑的精神是非常令人敬佩的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-3 01:16 | 显示全部楼层
mjzxlmg 发表于 2013-2-3 00:16
学习了。变量声明的好处在于别人能更好理解你的代码,也是有助于新手学习的。我觉得最好的例子是灰袍大师, ...

嗯,那我告诉你,完全可以直接把中国人大家都看得懂的中文汉字字符串作为变量使用。

虽然打字可能稍微慢一些。

是否你觉得这样的习惯更好一些?


…………

顺便说一下,我前面已经提到过,
让别人甚至新手都能看懂代码的做法是直接加注释。远比变量命名更有效。
就像帮助文件里做的那样


但是除非对于初学者,否则没有必要每一句都加注释。
但每一个段落或重要语句应该加注释说明。

尤其是算法思路最好有单独的说明。这个才是更好的习惯。

点评

对思路与段落加注释,同意这个好习惯!!!  发表于 2014-9-18 20:56

TA的精华主题

TA的得分主题

发表于 2013-2-3 07:59 | 显示全部楼层
香川群子 发表于 2013-2-3 01:16
嗯,那我告诉你,完全可以直接把中国人大家都看得懂的中文汉字字符串作为变量使用。

虽然打字可能稍微 ...

就是说代码的易读性也是写代码的好习惯。

TA的精华主题

TA的得分主题

发表于 2013-2-3 09:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2013-2-3 01:16
嗯,那我告诉你,完全可以直接把中国人大家都看得懂的中文汉字字符串作为变量使用。

虽然打字可能稍微 ...

建议女侠重新完整地、准确地、不是玩世不恭的表达一次你的想法
放在一楼

TA的精华主题

TA的得分主题

发表于 2013-2-4 08:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢
学习了
背这个东东 真的很费劲......

TA的精华主题

TA的得分主题

发表于 2013-2-4 08:47 | 显示全部楼层
本帖最后由 andysky 于 2013-2-4 16:03 编辑
jeep2700 发表于 2013-2-4 08:40
谢谢
学习了
背这个东东 真的很费劲......


刚好相反
我个人认为对于数据类型,连一秒钟就不用花
不就是一个表吗?打印出来贴在桌上,要用时查一下,永远不需要花一秒钟去背它。所谓背数据类名称和范围需花太多精力,那是方法不对
另外,也可以把它截图放在手机中,随身带,到了哪里都可以查。
就好比手上有字典,永远不需要花1秒钟去把字典内容背下来,但是字典中的一切东西都可以为我所用。

所以,既然不需要花一秒钟去背,那么一楼的所有观点都不再成立
定义变量好处不用说了,所有人都知道,仅有的一个坏处“需要花时间去背”也不存在了。
那么结论是什么,大家都明白了吧?

除了变量,我的手机中、桌上还有很多语法纸条,一页纸足以把一切学用语法、变量、事件等等名字罗列出来......
方法远比努力更重要

点评

这个绝对同意,轻松能解决问题,为什么要走旁门左道?  发表于 2013-2-5 17:55

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-2-4 09:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
dim arrXXXXXX 还是有好处的
至少可以利用ctrl+j把dim多打的几个字节省出来,不然每次都要重新打一遍,而且很难保证不出错。
想去复制也不一定找的到位置
再小的程序,变量用两次以上我都会去dim一下

TA的精华主题

TA的得分主题

发表于 2013-2-4 13:27 | 显示全部楼层
申明可以在我们以后的使用中方便点而已
我试过几次,只要不申明,修改一个变量名都麻烦
而且在错误的时候,我们也可以知道我们的变量类型是否满足的了存储数据的类型
所以比较推崇用
主要意图是防错而已
申明简单点说应该更类似于打底稿
套用网友的说法,咋用咋顺手,就怎么用呗,不必纠结。

TA的精华主题

TA的得分主题

发表于 2013-2-5 18:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 ggsmart 于 2013-2-5 18:52 编辑

好吧,也说点看法。
我从小喜欢看武侠小说,就拿练武来比方吧,虽然我不是黄蓉,也不会武功。
相信大家都记得下面的片断:
【一】周芷若急于求成,修练九阴白骨爪,但身体却也深受其害。尽管在武功上有很大进步,打败过很多“高手”,在峨嵋也是唯我独尊,但面对张无忌等高手还是无所作为,最后还在少林寺被杨过的后代用真正的九阴白骨爪打败。同样的武功,威力却不可同日而语。
【二】韦小宝轻簿阿珂,被阿珂所杀到少林寺,小宝向武功高强的老和尚师侄求救,老和尚看出阿珂的武功根基不扎实,只是注重招式,很容易破解,随便指点几招,不懂武功的小宝出门后也能和阿珂过上几手。而此时的阿珂好像已经和师傅闯荡江湖几年,算是小有名气了。
【三】水浒传中,鲁智深有三拳打死镇关西之勇,有倒拔垂杨柳之力,但在和林冲初次见面比武时,却赢不了身材和力量都稍弱的林冲,反处于下风,据说就是下盘修为不够。
......
类似的例子还有很多,遍布各行各业。我要讲的也是一个道理:好的根基,好的习惯,能更好地助你成为一个真正的高手。
但也不否认你不拥有好习惯和好根基就不能成为高手,只是机会的多少和概率的大小而已。

好吧,回到我们讨论的正题:初学VBA需要学习声明变量吗?初学VBA有必要学习声明变量吗?
要回答这个问题,我们首先来思考以下几个问题:
(1)为什么要声明变量?     ————这个问题相信对读帖的人来说都不是问题了,百度一下大家都知道。
(2)学习声明变量很难吗? ——要学习声明变量,就是两个知识点。一是声明变量的语句,DIM,PUBLIC等;二是数据类型。这个问题很难吗?如果连数据类型都弄不清楚的人,还怎么认识Excel里的数据?还怎么处理数据?有一点点Excel基础的人,对文本,日期,数值等类型的理解还会很难吗?
(3)在程序中声明变量有坏处吗? ——我能想到的坏处有两个:一是难得手动输入代码;二是增加程序的长度。但这个难度。。。。真的真的是问题?
(4)不声明变量程序可以运行吗? ——只要语法正确,只要语句正确,不声明变量程序当然可以运行,因为程序自动替你声明它了。
(5)不声明变量有坏处吗? ——这个对比第一个问题“为什么要声明变量”答案的相反面来寻找答案。

接下来我们再来讨论我们的问题:究竟要不要学习声明变量?
我觉得, 以下情况可以不用理会怎样声明变量:
1、一生只想当阿珂那样只会几手三脚猫功夫的人;你确定你这辈子只想学点录制和执行宏,修改简单的宏或编写简单的程序完成工作可以不必理会;
2、不会将自己的程序拿给别人学习或修改的人可以不必理会。要不,我觉得没有几个人愿意看你的这种不符合大众习惯的代码的,就算别人声明变量都是错误或多余的,就算N多程序员总结出来的这个习惯是不妥的,可大家都错了,你这个唯一“对”的人在他们眼里依然是不合群的,没人认可你;
3、不会借鉴别人的代码来参考学习的人不必理会。否则我担心你看不懂别人那些声明变量的代码,惹得你头痛伤神。别告诉我你能看懂,如果你能看懂,那你写代码时干嘛不也去声明?你不知道声明有很多好处?

如果你的想法与前面说的这几条不符,那还是学习一下声明变量,因为这个毕竟不是什么难题。你连循环语句,对象属性都能搞清楚,还怕一个变量?
当然,学习这个东西是讲方法的,不能一味地抛弃,当然也不能一味地死磕,死记。

是的,那么多数据类形以及各自的可存储长度是很难记,我自己也记不清几个,那么多对象名称,属性名称,方法名称,事件名称是很难记,那么多函数名称很难记,但真的需要记住吗?你不记住就真的找不到他们吗?有一天,你不知道SUM函数怎么写了,难道你还不知道它大概是什么样,而去查帮助吗?
同理:如果你拿上一本书,在一开始实在弄不清变量和数据类型是什么东西,你不能先在脑子里保留对这个东西的印象,继续往后学,待遇到新问题时,返回查找再学习吗?

我的观点和楼主不太一样:我始终认为,学好语法很重要,连正确的表达方式都不懂,还怎么写句子?写代码?写程序?还怎么判断一句代码是对是错?错在哪里?如何修正?

所以,虽然在VBA程序中使用语句声明变量不是必须的,但在程序中声明变量却能给你带来许多好处,效率的问题不说,更重要的是它能增加你的程序的可阅读性和可理解性,所以我还是建议初学的朋友们都要掌握这个知识点。(注:我说的是“建议”,而不是“必须”,我也没在任何场合说过“必须”,习惯是自己的,没人能强求。)
只是,你可以选择按你的方式或你学习的任何一个时间掌握这个知识点。

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-2-6 10:01 | 显示全部楼层
这个话题好,很有意思,刚注册的号,一口气看到完。
恭祝各位参与的朋友蛇年新春吉祥如意!!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 05:38 , Processed in 0.049210 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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