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-2-26 09:04 | 显示全部楼层
本帖最后由 jinsinfo 于 2013-2-26 09:14 编辑

所有支持goto语句的编程语言,包括强劲的c、c++,流行的VB及.net、Javascript,都要求尽量不要使用goto这一语句,对goto态度最暧昧的大概要算Java了,请看看网友的详解:

http://lavasoft.blog.51cto.com/62575/178997

http://zhidao.baidu.com/question/272157716.html

我觉得最有意思的是这一点: goto,const都是Java的保留字,但是一旦出现这两个关键字程序就不能通过编译,但是有趣的是用一些反编译工具(比如Jad)对某些java程序进行反编译时会发现大量的存在goto(即使这些程序源码不是如此),说明人写代码是给人看的,goto被人诟病因为他破坏了程序按顺序执行的基本准则,但是编译器编译时优先考虑的是如何让该代码更有效率的让计算机执行

我想对你所说的“初学者”,goto无疑是很方便的一种处理方法,不知道你对待goto是个什么态度,我有时候会想“偷偷懒”用一下goto,但绝大部分还是老老实实调整一下结构,使代码符合“结构化”的要求,这并非是不可能完成的任务,只是需要在“自然言语的表达和思维方式”和“编程言语(更接近机器的逻辑方式)的表达和思维方式”之间进行一些必要的“翻译”。
    同意几位版主的意见,个人风格爱怎样无伤大雅,但如果这些代码今后还要用到、需要与别人交流,还是尽力“标准”一点为好。

TA的精华主题

TA的得分主题

发表于 2013-2-27 16:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看来大家还是很有争议啊

TA的精华主题

TA的得分主题

发表于 2013-2-27 22:12 | 显示全部楼层
从1楼认真看到这里,足足花费我1个小时的时间。
作为新手,当然支持楼主的观点,但也不否认回贴中一些大侠经典的解说。

题外话:经过一番 “PK”,楼主的写作能力必定是有所提高的,呵呵......

点评

我看到此处是第二个晚上,当然不是连续的,而是花了两个晚上得空的时间了……可能还有第3个吧……  发表于 2014-9-18 22:40
看了一个小时,辛苦了!  发表于 2013-2-28 08:48

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-2-28 08:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
yf_home 发表于 2013-2-27 22:12
从1楼认真看到这里,足足花费我1个小时的时间。
作为新手,当然支持楼主的观点,但也不否认回贴中一些大侠 ...

祝愿你 按自己的心愿 学习、进步!

TA的精华主题

TA的得分主题

发表于 2013-3-1 09:22 | 显示全部楼层
1楼这样的观点都嫩被评为精华, 真让人大跌眼镜。汗一个。

TA的精华主题

TA的得分主题

发表于 2013-3-1 09:28 | 显示全部楼层
无知者无谓, 而且本来是真正脑袋被驴踢了的楼主, 讲起来还振振有词。{:soso_e119:}
楼主可以继续无知, 但最好不要出来误人子弟。

长得丑不是你的错, 出来吓人就是你的不对了。{:soso_e120:}

点评

看来对楼主缺乏了解……  发表于 2014-9-18 22:41
你说我是无知无畏,我看你是一知半解。  发表于 2013-3-1 10:53

TA的精华主题

TA的得分主题

发表于 2013-3-1 09:39 | 显示全部楼层
初学者最初养成的习惯是什么, 这将对之后产生很大的影响。

VB的原罪就是变量不经定义就使用,而且编译器允许随处定义, 之所以成为原罪,那就是VB把这个设置为默认的。

变量不经定义就使用、随处定义的危害, 远大于你最初得到的所谓方便。

变量不仅必须要定义后使用, 变量的名称也一样需要谨慎。

看到很多垃圾代码, 变量都是一个两个字母, 估计过一段时间, 写代码的自己都搞不清楚这些简单字母要代表的是什么。

不要散布有害的观点去耽误祸害他人, 特别是初学者。

这就是我保留的观点。

TA的精华主题

TA的得分主题

发表于 2013-3-1 10:16 | 显示全部楼层
说到底, 敢于把持这种误导性观点的帖子评为精华的人口味实在太重。太重了{:soso_e180:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-1 10:48 | 显示全部楼层
softbest4u 发表于 2013-3-1 09:39
初学者最初养成的习惯是什么, 这将对之后产生很大的影响。

VB的原罪就是变量不经定义就使用,而且编译器 ...

作为职业编程者,或者是对于将来有志于成为职业编程者的人来说,

你的这些观点当然是有道理的。


但是,对于很多仅仅是因为使用Excel而接触宏、写一些简单的VBA【垃圾代码】自己用的人来说,
你这些指责就是【狗咬耗子 多管闲事】了。

讲话不用那么绝对,还什么【VB的原罪】

微软的工程师 全部加起来都不如你一个人?

微软开发了这样的环境,就一定有它的道理。

而这个道理你不明白没关系,但不应该强求别人像你一样去做事。


对于很多简单的VBA代码来说,一个字母的变量也是非常方便的。


你说的虽然有你的道理,但一定要记住,别人的做法也是有道理的。
你没有任何权力指责别人。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-3-1 10:51 | 显示全部楼层
softbest4u 发表于 2013-3-1 09:39
初学者最初养成的习惯是什么, 这将对之后产生很大的影响。

VB的原罪就是变量不经定义就使用,而且编译器 ...

不用定义变量 也能写出好用的VBA代码,

这个是事实,因此也是必须让初学者明白这个事实的。


这不是有害的观点。

反之,一定要定义变量才能写代码,这个才是错误的观点。
你不要用这个错误的观点去耽误祸害出初学者。

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

本版积分规则

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

GMT+8, 2024-7-2 13:38 , Processed in 0.038399 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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