Select Case tempData
   Case tt2  And Not IsNumeric(tt)
    为什么与is组合后不与下式等价
    If tempData = tt2 and Not IsNumeric(tt2) Then
        debug.print "Test"
    End If
select case 帮助文件有这样一句话.
每个 Case 语句可以包含一个以上的值,一个值的范围,或是一个值的组合以及比较运算符
比较运算符
字符或符号,用来表示两个或多个值或表达式之间的关系。这些运算符包括小于 (<) 、小于等于 (<=) 、大于 (>) 、大于等于 (>=) 、不等 (<>) 和等于 (=)。其它运算符还有 Is 和 Like。注意,在 Select Case 语句中不能把 Is 和 Like 当作比较运算符来使用。请问
is 是否不包括not isnumeric()

解决方案 »

  1.   

    晕了,哪有什么Is?
    那不是Isnumeric函数吗?
      

  2.   

    Isnumeric是个用来判断是否数字的函数
      

  3.   

        If tempData = tt2 and Not IsNumeric(tt2) Then 
            debug.print "Test" 
        End If 
    程序通过

    Select Case tempData 
      Case tt2  And Not IsNumeric(tt) 
    程序不通过.
    所提问题,为什么两个语句不等价.
      

  4.   

    Case tt2 And Not IsNumeric(tt)语法错误
    应改为Select Case tempData Case Is = Not IsNumeric(tt), tt2
      

  5.   

      If tempData = tt2 and Not IsNumeric(tt2) Then Case tt2  And Not IsNumeric(tt
      

  6.   

    Select Case tempData 
      Case tt2  And Not IsNumeric(tt) 与
     If tempData = (tt2 and Not IsNumeric(tt2)) Then 等价
      

  7.   

    按上面各位大侠的提示, select case好像不能执行and
    Sub ls2()
      tt = "dd"
      tt1 = 1
      ttt = "dd"
      Select Case tt
         Case ttt And IsNumeric(tt1)---程序不通过,提示数据类型不匹配。
          Debug.Print 22
         Case ttt, IsNumeric(tt1)--- 程序通过,执行的是逻辑或.
          Debug.Print 22
      
      End Select
    End Sub
      

  8.   

    Select Case tempData 
      Case tt2
          If Not IsNumeric(tt) Then      End If
    End Select
      

  9.   

    在 ttt And IsNumeric(tt1) 中不能进行and运算,ttt="dd"是一个字符串,而IsNumeric(tt1)返回的结果是逻辑值True或False,当然类型不匹配。
    看下面:Private Sub ls2()
            tt = True
            tt1 = 1
            ttt = "dd"
            Select Case tt
                   Case ttt = "dd" And IsNumeric(tt1) 
                        Debug.Print 22 & "A"
                   Case ttt, IsNumeric(tt1) 
                        Debug.Print 22 & "B"
            End Select
    End Sub
      

  10.   

    应按照8楼的进行。
    还有在下面的结构中:tempData测试数据的所有可能结果应该在下面case语句中枚举。 
    你那个叫什么case语句,我不太明白??

    Select Case tempData 
           Case tempData结果1 
                If Not IsNumeric(tt) Then 
                   ... 
                End If 
           case tempData结果2
                ...
           case tempData结果3
                ...
           Case Else 'tempData的上面所有结果都不满足时执行
                ... 
    End Select 
      

  11.   


    Case tt2 And Not IsNumeric(tt2) and 如同 C中的"与"
    Case tt2 And Not IsNumeric(tt2) case 后面跟的是表达式,即tt2 And Not IsNumeric(tt2)被当作(tt2 And Not IsNumeric(tt2)),即True or False也就是说,当tt2非0数字时满足条件case tt2
    if isnumeric(tt2) then
    end if
    等于tt2并且是一个数字所以不是一个概念