2

我的 VBA 代码中有一些用户定义的对象,我想知道是否有办法检查对象类型是什么。就像是

Dim myObject as Variant
Set myObject= New Employee

     If(myObject isType Employee)
           Do Something
      Else
           Do something else

我在想 VarType() 函数,但它显然不适用于用户定义的类型。还有什么我可以使用的吗?

4

2 回答 2

2

这样做有两种可能性。下面的代码应该解释一切。请参阅里面的一些附加评论:

Sub qTest()

    Dim myObject As Variant
    Set myObject = New Employee

    'return results to Immediate
    Debug.Print TypeName(myObject) '>> will return class name
    Debug.Print TypeOf myObject Is Employee '>>will return true

    'using with 'if statements', both will return true 
    If TypeName(myObject) = "Employee" Then
        MsgBox "OK"
    End If

    If TypeOf myObject Is Employee Then
        MsgBox "OK"
    End If

End Sub
于 2013-08-07T18:31:27.447 回答
1

我相信你正在寻找TypeOf. 使用上面的示例,可以按如下方式使用:

Dim myObject as Variant
Set myObject= New Employee

If TypeOf myObject is Employee Then
    Do Something
Else
    Do SomethingElse
End If
于 2013-08-07T18:33:18.437 回答