如何获取一个变量的类型
如果传进来一个变量,在函数中如何得到这个变量的数据类型?

解决方案 »

  1.   

    Option Explicit'Powered by Jadeluo, 2005/05/24Private Function GetVarTypeName(AVar As Variant) As String
        Dim s As String
        Select Case VarType(AVar)
        Case vbString
            s = "String"
        Case vbSingle
            s = "Single"
        Case vbDouble
            s = "Double"
        Case vbByte
            s = "Byte"
        Case vbInteger
            s = "Integer"
        Case vbLong
            s = "Long"
        Case vbBoolean
            s = "Boolean"
        Case vbDate
            s = "Date"
        End Select
        GetVarTypeName = s
    End FunctionPrivate Sub Form_Load()
        Dim s As String, i As Integer
        Debug.Print GetVarTypeName(s)
        Debug.Print GetVarTypeName(i)
        End
    End Sub
      

  2.   

    VarType 函数
          返回一个 Integer,指出变量的子类型。语法VarType(varname)必要的 varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。返回值常数 值 描述 
    vbEmpty 0 Empty(未初始化) 
    vbNull 1 Null(无有效数据) 
    vbInteger 2 整数 
    vbLong 3 长整数 
    vbSingle 4 单精度浮点数 
    vbDouble 5 双精度浮点数 
    vbCurrency 6 货币值 
    vbDate 7 日期 
    vbString 8 字符串 
    vbObject 9 对象 
    vbError 10 错误值 
    vbBoolean 11 布尔值 
    vbVariant 12 Variant(只与变体中的数组一起使用) 
    vbDataObject 13 数据访问对象 
    vbDecimal 14 十进制值 
    vbByte 17 位值 
    vbUserDefinedType 36 包含用户定义类型的变量 
    vbArray 8192 数组 
    注意 这些常数是由 Visual Basic 为应用程序指定的。这些名称可以在程序代码中到处使用,以代替实际值。VarType 函数示例
    本示例使用 VarType 函数决定变量的次类型(subtype)。Dim IntVar, StrVar, DateVar, MyCheck
    ' 初始化变量。
    IntVar = 459: StrVar = "Hello World": DateVar = #2/12/69# 
    MyCheck = VarType(IntVar)   ' 返回 2。
    MyCheck = VarType(DateVar)   ' 返回 7。
    MyCheck = VarType(StrVar)   ' 返回 8。
      

  3.   

    TypeName 函数
          返回一个 String,提供有关变量的信息。语法TypeName(varname)必要的 varname 参数是一个 Variant,它包含用户定义类型变量之外的任何变量。说明TypeName 所返回的字符串可以是下面列举的任何一个字符串:返回字符串 变量 
    对象类型 类型为 objecttype 的对象 
    Byte 位值 
    Integer 整数 
    Long 长整数 
    Single 单精度浮点数 
    Double 双精度浮点数 
    Currency 货币 
    Decimal 十进制值 
    Date 日期 
    String 字符串 
    布尔 布尔值 
    Error 错误值 
    Empty 未初始化 
    Null 无效数据 
    Object 对象 
    Unknown 类型未知的对象 
    Nothing 不再引用对象的对象变量 
    如果 varname 是一个数组,则返回的字符串可以是任何一个后面添加了空括号的可能的返回字符串(或 Variant)。例如,如果 varname 是一个整数数组,则 TypeName 返回 "Integer()"。TypeName 函数示例
    本示例使用 TypeName 函数返回有关变量的信息。' 声明变量。
    Dim NullVar, MyType, StrVar As String, IntVar As Integer, CurVar As Currency
    Dim ArrayVar (1 To 5) As Integer
    NullVar = Null   ' 设置变量值为 Null。
    MyType = TypeName(StrVar)   ' 返回 "String"。
    MyType = TypeName(IntVar)   ' 返回 "Integer"。
    MyType = TypeName(CurVar)   ' 返回 "Currency"。
    MyType = TypeName(NullVar)   ' 返回 "Null"。
    MyType = TypeName(ArrayVar)   ' 返回 "Integer()"。