在VB/VBA中要有所作为,是绕不开Variant的
前言在VB/VBA中Variant类型,想必各位都不陌生,因为绝大部分VB/VBA内置函数的参数和返回值,都是这货。很多讨论VB/VBA性能优化的话题,也不会忘记这货。笔者也在《》一文中,初提Variant的妙处。要深入VB/VBA,笔者甚至在《》一文中,利用Variant重置VB/VBA的数据类型,是进入VB/VBA指针高阶应用的隐秘之门。
作为数据类型的容器,Variant的结构也在前述文章中给予了介绍。既然作为数据容器,最常用的场景,当然就是传递数据啦。本文,笔者就跟大家分享下Variant在数据传递中中的妙用。
一、患难之中求真情要想体会Variant的妙,自然离不开不妙的参照物。那首先,让我们看看VB/VBA中有哪些“致命”点吧:
1、数据类型不对,编译不让通过
实话说,笔者现想,还真不好找案例,比如下面这种故意,VB/VBA都能放过,也是无语了。
非IT初学者,看到这,就该知道,确认过眼神了,哈哈
为了说明数据类型不对,对编译的影响,这里给大家介绍VB/VBA中一个神秘的菜单项。VB6位于“运行”下的“全编译执行”,而VBA位于“调试”下的“编译VBAProject”。如下图所示,说不定很多人,都还没注意过这俩兄弟哦,名字很具有误导性,尤其是VBA的。
从这里也可看出,VBA是支持编译的
但是,这哥俩却不是用来生成EXE或DLL的,却可以模拟编译过程,检查编译错误。在这里呢,笔者为了方便说明问题,就用这个功能代替编译检查。于是,又列举了下图所示的例子,然后进行编译检查。