打开网易新闻 查看精彩图片

看出问题了吗?

动图中的mFunction函数里,参数uInt和mVar均使用的默认类型,按理应该都是Variant类型。如果用TypeName函数来查看具体类型,应该取决于实参的类型。

比如:

TypeName(1&)="Long"

TypeName("abc")="String"

TypeName(1.0)="Double"

如果,不给mVar传递数据,让其使用缺省数据,其类型为Error。说明mVar为未初始化的Variant,这是符合预期的。

打开网易新闻 查看精彩图片

是不是很奇怪?很反直觉?

但是,实参都为Long类型数据1&时,uInt的类型为Integer,而mVar的类型为Long。不应该都是Long才对吗?这究竟是哪里出了问题了呢?

欢迎讨论!
打开网易新闻 查看精彩图片
欢迎讨论!

迎关注BtOfficer,了解更多VB/VBA技术内幕。

打开网易新闻 查看精彩图片