当前位置:   article > 正文

VBA VarType()函数的应用

vba vartype

函数原型:

Integer VarType(varname As 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 数组

vbArray类型需联合使用:
vbArray + vbInteger 表示整数数组,返回8194

函数应用:

把日期型和长整型或字符串的“类日期型”统一成"yyyy-mm-dd"格式,其他类型或不满足条件的(本例设为<"2001-01-01")返回 Fasle

  1. Private Function Leap(ByVal Y As Integer) As Boolean
  2. Leap = (Y Mod 4 = 0 And Y Mod 100 <> 0) Or (Y Mod 400 = 0)
  3. End Function
  4. Public Function VtoD(ByVal vDate As Variant) As Variant
  5. Dim Y, M, D As Integer
  6. VtoD = True
  7. Select Case VarType(vDate)
  8. Case 0 To 2, Is = 6, Is > 8
  9. VtoD = False
  10. Case 3 To 5
  11. VtoD = VtoD(CStr(vDate))
  12. Case 7:
  13. VtoD = Format(vDate, "yyyy-mm-dd")
  14. If VtoD < "2000-01-01" Then VtoD = False
  15. Case 8:
  16. If Len(vDate) <> 8 Then
  17. VtoD = False
  18. Exit Function
  19. End If
  20. For i = 1 To 8
  21. If Asc(Mid(vDate, i, 1)) < 48 Or Asc(Mid(vDate, i, 1)) > 57 Then
  22. VtoD = False
  23. Exit Function
  24. End If
  25. Next
  26. Y = --Left(vDate, 4): M = --Mid(vDate, 5, 2): D = --Right(vDate, 2)
  27. If Y < 2000 Then VtoD = False
  28. If M > 12 Or M = 0 Then VtoD = False
  29. If D > 31 Or D = 0 Then VtoD = False
  30. If M = 2 And D > (28 + IIf(Leap(Y), 1, 0)) Then VtoD = False
  31. If VtoD = False Then Exit Function
  32. VtoD = Format(DateSerial(Y, M, D), "yyyy-mm-dd")
  33. End Select
  34. End Function

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/668990
推荐阅读
相关标签
  

闽ICP备14008679号