考虑一下
Dim u As Variant, v() As Variant
u = Range("A1:B3").Value
v = Range("A1:B3").Value现在u和v之间有什么区别吗?如果不是,那么将v声明为变量数组,而不是简单地将其声明为变量,是否是多余的?
发布于 2014-12-02 21:31:23
这是有区别的。可以将Variant看作是存在于您的机器的较低级别的东西,并且具有到VBA的应用程序编程接口。底层的东西是一个VARIANT,Windows附带了几个函数,可以让你在多种语言中操作它;VBA就是其中之一。
v是这样的VARIANT的Visual Basic数组,而u是一个单独的数组。
发现差异的一种方法是使用计算结果为vbArray + vbVariant的VarType(v)。VarType(u)的计算结果为vbEmpty。您可以在分配给range内容之前对此进行测试。
在您的特定情况下,Excel-VBA在为v赋值时做了一些奇特的事情(我不认为有其他术语):它“知道”目标类型是一个数组,并执行稍微不同的强制。设置为Excel.Range的值后,u和v完全相同。
https://stackoverflow.com/questions/27250592
复制相似问题