ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-11-6 00:12 | 显示全部楼层
liucqa 发表于 2013-11-5 23:57
你说的这些,就好比欧阳锋和洪七公争论到底是蛤蟆功厉害还是打狗棒法厉害,你跑过来说,我认为肚子饿了 ...

你可以这样认为,但是,我用香川老师写的实例已经侧面回答了你。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-6 00:42 | 显示全部楼层
手把手学习 发表于 2013-11-6 00:12
你可以这样认为,但是,我用香川老师写的实例已经侧面回答了你。

呵呵,我的意思是说,其实你没看懂争论的是什么问题。

其实在这个论坛,能看懂这个帖子争论的到底是什么的,实际也没多少人,大部分是看热闹起哄架秧子的...

对天天吃包子的人,你去问他是天九翅好吃,还是血燕窝好吃......嗯.....这个问题咋回答呢?

估计只能说,填饱肚子的好吃了...

多好的答案呀!

TA的精华主题

TA的得分主题

发表于 2013-11-9 11:30 | 显示全部楼层
http://kb.cnblogs.com/page/192017/

程序员最头疼的事:命名
作者: Phil Johnson  来源: 伯乐在线  发布时间: 2013-11-05 21:53  阅读: 4334 次  推荐: 13   原文链接   [收藏]  

  原文链接: Don’t go into programming if you don’t have a good thesaurus

  许多程序员认为编程时,如何命名不仅是他们面临的老大难问题,也是最重要的事情之一。

  上周,我发起了一个“程序员编程中的老大难问题”的投票,主要是基于最近Quora上的跟帖讨论。根据大家的反响和投票结果,有一项投票遥遥领先,稳居第一——对于软件开发人员来说,最大的难题是:如何命名(例如:给变量,类,函数和过程命名等等)。

  对于这个结果,我多少有点意外,因为作为一个多年的开发人员,我不会投给这一项(我想我会投给“修改或维护别人的代码”)。但是真正让我惊讶的是,看起来好像不怎么重要的命名居然排列第一,跟期待的结果实在差太远了。下面是投票结果的分布图。

  该结果是来自Quora问答网站和更早的Ubuntu论坛跟帖的4500个开发者的投票。“如何命名”一项的选票几乎是其它八项的投票结果的总和,哇!

  的确,这些基于自我筛选的群体的投票结果是完全不科学的。但是我认为这个结果还是有一定意义的,换句话说,如何命名的确是个很棘手的问题,许多非编程人员可能会意识不到。

  几年前在StackExchange社区里对于这个话题刚好有个跟帖,为了强调这一点,我引用了一些内容是关于程序员在编程中对于命名的的痛苦和纠结。

  “我确实在编程的时候花了很多时间在考虑如何命名。”

  “我不得不同意命名是一门艺术。”

  “如果你想要提高代码的可读性,命名的确很重要。”

  我认为最后一条抓住了部分核心,解释了命名为什么会这么难,因为它太重要了。准确的命名可以提高代码的可读性,让人容易理解,方便调试,也给以后修改和维护你的代码的人带来方便。一旦开始做了,很快你会发现要想出一个简洁又准确的名字没那么容易。就像Jeff Atwood 所写的:

  “想出好的命名的确很难,但是有难的道理,因为好的命名需要只用一两个单词出表达你的根本意思。”

  而且,许多人认为,正确的命名能帮你写出好的代码。如果不能为一个变量或者函数想出一个清晰又简洁的名字,那可能是你的代码有问题。那样的话,你就得考虑重写或者进行代码重构了。

  “通常,如果你无法想出一个合适的名字,意味着你的设计可能有问题。你的一个方法里是不是实现了太多的功能?或者你的类的封装,凝聚性不够强?”

  “我的经验是如果无法给你的类想出一个合适的名字,大多数情况都是你的类有问题:你可能不需要这个类,它有点多余了”

  “命名难也不见得是坏事儿,它可以迫使你去认真思考你的类到底想要实现什么功能。”

  长话短说:如果你想要学习编程,一定要给自己准备一本好词典。

点评

我发点评,不是狂妄地自我感觉高人一等,只是想利用同楼层的功能……要回复批驳,我想我是有跟帖的,我采用这个变通的方法……  发表于 2014-9-19 00:17
有个感觉就是,我们一开始往往不知道要定义的变量的集合究竟有多大,从我的小经历来看,有时想到一种适合自我的命名规则后,再另一种情况下,变量数突破时,规则又得面临调整,而此时往往会涉及到代码的思路……  发表于 2014-9-19 00:16

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-11-9 12:18 | 显示全部楼层
liucqa 发表于 2013-11-9 11:30
http://kb.cnblogs.com/page/192017/

程序员最头疼的事:命名
如果不能为一个变量或者函数想出一个清晰又简洁的名字,那可能是你的代码有问题。那样的话,你就得考虑重写或者进行代码重构了。

非常正确,MF大神在经典著作《重构》中反复强调了这个观点。


TA的精华主题

TA的得分主题

发表于 2013-11-9 18:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-11-22 22:12 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-4-20 21:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2013-2-17 10:11
微软提供了声明变量,或不声明变量就使用的选择,
本身就说明不声明变量的用法是完全可以的,并且也是有 ...

微软先允许“不声明”,后发觉是个,就用option explicitl来补救的。不要再继续坑初学者了。

TA的精华主题

TA的得分主题

发表于 2014-4-20 22:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
hzruziniu 发表于 2013-1-31 17:09
我们初学者鼎力支持香川老师的观点,那此高手们不要再打口水战了,香川老师的观点是正确的,象我们这些没有 ...

复制代码不叫做编程吧?

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-4-21 08:39 | 显示全部楼层
coby001 发表于 2014-4-20 21:38
微软先允许“不声明”,后发觉是个坑,就用option explicitl来补救的。不要再继续坑初学者了。

你不要自以为是。你的解释是完全不符合逻辑的。

Option Explicit 和 Option Base 1 一样,是本来就有的功能,并不是补丁。


…………
至于你认为微软允许不显式声明就可以使用变量是个坑,而不是一种方便用户的选择,
那也完全是你个人的认识而已。

如果照你的逻辑,
允许 arr = Range("A1:D5") 来得到内存数组,
而不是强制要求 arr = Range("A1:D5").Value

这也是个“坑”。

还有,允许 LastRow = Range("A65536").End(3).Row

这也是个“坑”。


………………是不是?!

TA的精华主题

TA的得分主题

发表于 2014-4-21 11:13 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-1 19:03 , Processed in 0.045084 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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