我是个新手,在给公司作项目,遇到一个问题
代码如下
Private Sub Command1_Click()
Dim a As Booleana = IsNumeric("10E4")MsgBox a
End Sub实际上那IsNumeric函数里的数是个科学记数法,所以他返回的是True,
但他又有字母E,所以我想让他返回false,又不想用循环,
望各位高人给予帮助,最好是代码,能解决者给100分

解决方案 »

  1.   

    Private Sub Command1_Click()
    Dim a As Booleana = IsNumeric(Replace("10E4", "E", "A"))MsgBox a
    End Sub
      

  2.   

    以上只要是科学记数法都可以返回false
      

  3.   

    str="10E4"
    a = IsNumeric(str) And Instr(Ucase(str),"E")
      

  4.   

    str="10E4"
    a = IsNumeric(str) And Instr(Ucase(str),"E")=""
      

  5.   

    Private Sub Command1_Click()
    dim a as boolean
    Dim f As Doubleon error resume next
    f = CDbl("10E4")
    a = (0=Err.Number)
    on error goto 0MsgBox a
    End Sub
      

  6.   

    楼上的原理我明白,就是把e替换成a,但是,
    如果有除了e之外的别的字母出现咋办那?
      

  7.   

    用转换字符串为浮点数
    如果转换失败表示不是数字IsNumeric只是用来判断某个字符串是否全由数字组成
      

  8.   

    如果有除了e之外的别的字母出现咋办那?
    ------------------------------------
    出现这种情况无非就是两个字母E(e)和D(d),可以这样来处理:Dim str As String
    str = "10E4"
    If InStr(UCase(str), "D") <> "" Or InStr(UCase(str), "E") <> "" Then
        a = False
    Else
        a = IsNumeric(str)
    End If