我的函数得到一个集合,并且这些项可能是对象或基元
如何将商品分配给变体?
我现在所做的看起来像这样:
Dim vItem As Variant
On Error Resume Next
vItem = oCollection.Item(sKey)
If Err.Number = 91 Then
Set vItem = oCollection.Item(sKey)
On Error GoTo 0
我认为它可行,但是我想知道是否有更好的方法可以做到。
最佳答案
您可以使用varType()
函数测试类型,或者,如果要测试特定类型,则可以使用typeof。
If VarType(oCollection.Item(sKey)) = vbObject Then
Set vItem = oCollection.Item(sKey)
Else
vItem = oCollection.Item(sKey)
End If
关于vba - vba-variant:如何处理Class与原始类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21572437/