1

我遇到了 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)只在立即窗口中接收到的值?

4

0 回答 0