【问题标题】:vba VarType to distinguish between String and Integervba VarType 区分String和Integer
【发布时间】:2011-10-12 13:49:35
【问题描述】:

我正在 VBA 中准备一个函数来创建一个查询来搜索数据库。其中一个参数“Value”可以是字符串(例如:“ON”)或数字(例如:123),如果是字符串,我必须选择与其不同的值(例如:“OFF”)和如果是数字,我必须选择大于它的值(例如:234)。

我准备了下面总结的函数,将值传递给比较“valueParam”作为变体,然后尝试检测“valueParam”是字符串还是整数。问题是函数 VarType 每次都将“valueParam”视为字符串。

Function prepareQuery(ByVal valueParam As Variant) as String
    Dim STR_Query as String
    STR_Query = "Select * FROM tablename"

    If VarType(valueParam) = vbInteger Then
        STR_Query = STR_Query & " WHERE Value>" & valueParam
    ElseIf VarType(valueParam) = vbString Then
        STR_Query = STR_Query & " WHERE Value<>'" & valueParam & "'"
    End If

    prepareQuery = STR_Query
End Function

有没有人知道为什么 VarType 不能识别 Integer 或者有其他想法来区分数字和字符串?

非常感谢

【问题讨论】:

    标签: string vba types integer


    【解决方案1】:

    您可能正在字符串中输入数字。使用IsNumeric 预先对其进行转换或更改您的函数调用。

    If IsNumeric(valueParam) Then
      valueParam = CLng(valueParam) 'or CDbl, depending on what you want ...
    End If
    

    【讨论】:

      猜你喜欢
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 2021-02-21
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-22
      相关资源
      最近更新 更多