我遇到CallByName函数问题。我试图根据属性的值将集合拆分为较小的集合,然后将这些较小的集合分配给数组。
下面的代码部分是导致问题的位。每当X引用包含字符串值的属性时代码工作正常,但每当我尝试传递CallByName属性为double的属性时,它都无法正确获取它(我认为)。
Dim temp as Variant
For i = 1 To UBound(arr, 1)
Set collSplit = New Collection
For Each v In collTruck
temp = CallByName(v, X, VbGet) ''''''''
If temp = arr(i, 1) Then ''''''''
collSplit.Add v
arr(i, 2) = arr(i, 2) + 1
End If
Next v
Set arr(i, 3) = collSplit
Next i
最初我只有If CallByName(v, X, VbGet) = arr(i, 1) Then
,但我添加了temp
行以帮助调试。
在两条注释行上放置断点表明,当X引用类型为double的属性时,temp始终保持为空。但是在立即窗口中,如果我尝试? CallByName(v, X, VbGet)
,它会给我我想要的价值。为什么仅在立即窗口中收到CallByName(v, X, VbGet)
的值?