首页 最新文章网站编程正文

VBA中任性的Variant

有种懒叫VB

不声明变量,就可随意而为,在其他强类型的语言里简直不可想象。

但在VB里,就是这么随意,可以少敲键盘!这在遥远的BASIC时代,是先进。即便现在,也是洒脱。能写出潇洒的,大抵也只有VB了吧。

虽不推荐,但的确可以这么干!其实这背后,就是VB变量的隐式声明,用的类型正好就是Variant。

一个变量名,可同时在VB支持的类型范围内,随意转换。Variant就像个大容器,包揽所有类型。

打开我心爱的Excel

单元格放文本,放数字,还可放公式,哪里顺眼放哪里!点一点,拖一拖,都有回应。

单元格的好使,将任性演绎的淋漓尽致。在事件驱动下,将消息主导下的人机交互,雕刻的犹如身临其境。

这背后,正是Variant类型的功劳。Excel内部哪里没有Variant?单元格的Value属性,公式参数,事件参数,可以说有便捷的地方就有Variant,Variant就是便捷的垫脚石。

VBS应该算是Variant的重病患者,在性能需求不高的交互页面上,各种姿态随你选。洋洋洒洒,能屈能伸,将VB的吊儿郎当玩耍地信手拈来。

Variant如影随形

熟悉Shell32的朋友,肯定知道application对象下的大部分参数都是Variant的,典型的当数ShellExecute方法。这只是系统中Variant现身的冰山一角,类似的案例非常多,读者朋友们可自行去探索。

我们知道,COM是windows系统的基石,COM要想在二进制上跨语言,首要解决的就是兼容各大语言的变量类型。Variant当仁不让地站了出来,这也是VB身为COM语言的有力证据之一,同时也是VB值得深挖的佐证。

便捷性牺牲的是什么?

Excel数据处理,堪称巨坑,比起Python,速度简直不要太弱!不知受了什么启发,很多用户像发现了新大陆,昔日的土地仿佛充满了荆棘。于是像负气的孩子,奔走相告间,充满了怨恨。

VBA解释执行时,用不上后端优化器,你要Variant如何快得起来。享受了方便,就不要抱怨Excel单元格遍历起来很慢,天下哪有两头都占的理!更何况,VB在嘻皮笑脸的背后,也有一本正经的严肃。

单元格里Variant困扰,让很多试图采用数据库方式的人,屡屡受挫。于是,Excel表单不如数据库,Excel数据超过N行后就是垃圾,Excel数据分析不如Python,总之Excel亏欠人们很多。

孰不知,Variant也可以整整齐齐。虽然vba用不上后端优化器,但Excel有数据类型扫描引擎啊!在该引擎的作用下,透视表的美简直不可方物。为何世人只看嬉笑怒骂的酸爽,却不扭头面壁思过,来一份踏实!

作者:BtOfficer 
来源:知乎
#转载请注明出处!

评论

觉得有用就打赏吧
关注本站公众号,享受更多服务!
联系方式
QQ:########
地址:中国·辽宁
Email:2727987445#qq.com
Copyright ©2015-2021.Powered by 云水客 | 网站地图 | 辽ICP备14000512号-5