CallByName不返回某些类型的值

时间:2015-09-02 14:03:05

标签: vba excel-vba callbyname excel

我遇到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)的值?

0 个答案:

没有答案