ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2013-1-29 09:57 | 显示全部楼层
仁者见仁,智者见智,这种观点在很多人看来根本就是谬论。抛开节省空间、提高效率,使用Option Explicit,显式声明变量,更加能够梳理对变量的含义的理解,更能理解变量作用范围,在出错调试中,更能够锻炼逻辑思维,简直是百利而无一弊。

点评

正因为很多人看来是谬论,所以都不好意思说我从不用,实际上Option Explicit的拼写要不照着写我都不会,支持想穿裙子  发表于 2013-1-30 11:45
说【百利】肯定是夸大,不过这是成语就不用计较了。 说【无一弊】那就过头了,显然害处多多,你是中毒太深不自知而已。  发表于 2013-1-29 13:47

TA的精华主题

TA的得分主题

发表于 2013-1-29 09:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
学习VBA,其实也可以先操练后深入,能事半功倍

点评

此观点与群子的似乎相同!!!  发表于 2014-9-17 21:19

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 10:58 | 显示全部楼层
本帖最后由 yiyiyicz 于 2013-1-29 11:06 编辑

女侠
最好也把VBA提高时,遇到的“变量”问题讲一下
比如类模块
或者强调一下,在入门阶段,这些问题可以简化
否则,留下的印象和习惯,不利于深入学习提高。
很理解女侠的初衷,避免初学者被复杂的概念弄晕。毕竟,在不同的应用场合,变量特性表现各不相同。要想在没有遇到时就弄明白,很抽象。初学者又不可能进入复杂的应用场合。

点评

这个赞同  发表于 2013-1-31 22:28

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:01 | 显示全部楼层
本帖最后由 chentx 于 2013-1-29 11:12 编辑
香川群子 发表于 2013-1-29 09:05
第一个误区:
Option Explicit

这样说就太绝对了,如果一开始就没有好的习惯,只会对以后的学习带来恶果,有没有声明变量绝对会对程序带来影响,你作为版主说出这么不负责任的理论,只会对初学者带来误解。
初学者如果连变量的基本概念都搞不清楚的话那说明TA不适合写代码,搞搞录制宏就好了。

声明变量不只是节省内存空间,有时候是因为杜绝手误,当书写了错误的变量名称,就会导致运算不正确,有了强制声明就可以避免这种情况发生。

你所说的简化理论其实会对初学者带来更多的疑惑,之前都一直很看好你的言谈,但在这里,你用了一些比较绝对的个人观点来强加给一些没有辨识力的初学者,让我失望了。

点评

看来大家对您的勇敢献花……当然,可能还有其他……啧啧!  发表于 2014-9-17 21:21

评分

6

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:13 | 显示全部楼层
chentx 发表于 2013-1-29 11:01
这样说就太绝对了,如果一开始就没有好的习惯,只会对以后的学习带来恶果,有没有声明变量绝对会对程序带 ...

应该理解女侠的初衷,为初学者快速掌握VBA着想
切不可人身攻击,这个板块曾经有过搅和的,闹的乌烟瘴气
大家站在不同角度,发出不同声音,很正常
何况,女侠是个热心肠的人。很多人都得到他的帮助

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我支持楼主一下!如果不是很专业的编程者,可以这样去做。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:28 | 显示全部楼层
yiyiyicz 发表于 2013-1-29 11:13
应该理解女侠的初衷,为初学者快速掌握VBA着想
切不可人身攻击,这个板块曾经有过搅和的,闹的乌烟瘴气
...

我就不明白了,我的回复中哪里有人身攻击了,请指出。

另外,楼主在一开始就用了一些很谑的言词:脑袋被驴踢了、脱裤子放屁等。换句话说,是不是在程序中定义了变量就会变成她所描述的那个样子?这样才是对人的不尊重吧。

其实,我觉得楼主想说的是,当初学者在学习熟悉一些简单的语句时可以不用Option Explicit这个语句,因为这样反而增加了学习的困难性,不利于去掌握知识点,但她对这个强制声明语句的绝对评价,给人的感觉就是在任何程序开发中都最好不使用声明变量,就这成问题了,肯定会对初学者造成困扰。

声明变量的另一个好处是,当你声明的是一个对象,使用时可以智能提示对象所具有的方法和属性,你不敢保证你一定记得住某个对象常用(更不要说全部)的方法和属性吧。

点评

“声明变量的另一个好处是,当你声明的是一个对象,使用时可以智能提示对象所具有的方法和属性,你不敢保证你一定记得住某个对象常用(更不要说全部)的方法和属性吧。” 不管是不是初学,为这句送花!  发表于 2014-9-17 21:24
声明的是一个对象,这个应当不是初学了吧,我现在都很少用到对象变量呢  发表于 2013-1-30 11:49

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 11:57 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
chentx 发表于 2013-1-29 11:28
我就不明白了,我的回复中哪里有人身攻击了,请指出。

另外,楼主在一开始就用了一些很谑的言词:脑袋 ...

前题是初学者,对于初学者,我也不建议学习定义变量,因为要理解变量,可能比理解代码做什么用的,更难

点评

一言以蔽之!  发表于 2014-9-17 21:25

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 12:20 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
帖子是写给初学者的,结果跟贴的都是非初学者,呵呵。
写的有一定道理,言辞略显偏激。
Option Explicit
自己从来没用过。
dim x
自己会写成 dim x as variant
主要是提醒自己以及方便写注释。
作为脚本语言本身就是弱类型的,肯定是完全不用声明变量就可以运行的。
作为初学者由于不熟悉,要考虑的东西很多,手忙脚乱,抛开一些没必要的东西先让程序跑起来的确对学习有帮助,
这也就是问什么VBA简单易学的原因之一,但从初学到中高级的过程很快,从开始就声明变量也是不错的选择。

点评

“抛开一些没必要的东西先让程序跑起来的确对学习有帮助” 在理!!!  发表于 2014-9-17 21:26

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-1-29 12:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
所谓仁者见仁,智者见智,省略声明,在在VB中当然能顺利运行,这本来对初学者来说,是可以的,VB这么设计的本意可能也是如此;但如果就此认为完全没有声明的必要恐怕有等商榷;除非一直都处于初学阶段,或者代码数量一直都很少,否则一旦因为不声明而遇上能顺利运行,可结果就是不正确的逻辑错误时,恐怕到时自己找虫子会找到火冒三丈。所以养成声明的习惯还是有好处的,不能因为能运行,硬件速度快了,就认为没有过必要;硬件速度虽然快,但人的需要量变得更快。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 06:58 , Processed in 0.034447 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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