Excel VBA入门之薯条、可乐打包带走

顾客是上帝,进了肯德基,你根本用不着考虑薯条与可乐谁盒装谁杯装的问题,喊一声“打包带走!” , 自然有人帮你考虑容量并处理好包装的问题 。Excel VBA也一样,为了伺候像你这样又懒又杠的大爷 , 专门推出了“打包服务”,让你的变量声明又简又快!
当然除了薯条可乐,肯德基还有很多其他东西,这一点与VBA中变量相似:种类很多,盛放的方式也有所不同:

Excel VBA入门之薯条、可乐打包带走

VBA部分变量类型列表
作为示例说明,上表只列出了比较常用的几种变量类型信息 。如果你声明的变量只是用来记录每个学生的单科成绩,Byte类型就够了;若是记录全班学生的总成绩可能就需要使用Integer了;再或是统计全中国人口数(约14亿),那Long可能是个很不错的选择 。
再往下瞅瞅 , 看见那个红色的Variant类型了吗?看下所占空间(容量),是不是很恐怖?对!这个就是那个肯德基的打包袋,更确切点应该称之为“超级魔法袋”!容量超大且黑白通吃!薯条、可乐都是小菜!即使再装入你全家全天所购的各种商品也丝毫没有压力!
现在来试试这个“打包服务”吧,看看这个“超级魔法袋”能否装得下全世界人口的总细胞数?假定人体细胞数约60万亿个,全世界人口约75亿,则世界人口总细胞数为60万亿*75亿 。我们将所需的三个量统统定义为Variant型 , 再来看看计算结果:
Excel VBA入门之薯条、可乐打包带走

VBA后台程式(细胞数计算)
绝对没问题,只是零太多,VBA用科学计数法给出了结果(45后面22个零)!
Excel VBA入门之薯条、可乐打包带走

VBA前台验证(细胞数计算)
如果有兴趣,你还可以定义一个Variant变量并将一本书的内容都赋值给它,可能你无法通过Msgbox或单元格直接输出(此两者输出量有限),但至少程序不会报错 , 说明Variant变量确实可以接受字符数据且容量够大!
甚至VBA的数组、对象……都可以塞进去!这真的是新人和懒人的福音!如果你不知道你的变量该定义为何种类型,用Variant吧……如果你懒得定义你的变量类型,用Variant吧……
还有更爽的!Variant类型是变量定义的默认类型!也就是说,如果你想定义一个Variant类型的变量,直接使用“Dim 变量”名即可,“As Variant”完全可以省略!如下图所示,直接一个Dim就够了,结果也可以正常输出!
Excel VBA入门之薯条、可乐打包带走

你以为这就完了吗?No,No , No!最爽的是:你甚至根本都不用定义变量,直接“无中生有”地拿出来使用都可以!
当然,世上哪有绝对的美事?。坎挥枚ㄒ逯苯邮褂檬强梢缘? ,但你想过若需多次使用的变量名一旦被输错 , 会有什么结果?去我的《Excel VBA入门之差之毫厘,谬以千里》找答案吧!


【Excel VBA入门之薯条、可乐打包带走】注:若对本文所提及的Excel VBA前后台操作不熟,可参考我的《Excel VBA入门之幕后魔眼》

相关经验推荐