在窗体form1上放一个文本框text1和一个按钮command1,属性默认。
加入如下代码:
Private Sub Command1_Click()
  Dim b As Boolean
  b = CBool(Text1)
  MsgBox ("OK")
End Sub运行程序,则当文本框内容为数字时程序正常,
内容为字符时出错:实时错误13,类型不匹配,请问这是怎么回事?

解决方案 »

  1.   

    默认的Text1.Text是"Text1",这当然无法转换.可以这样
    Private Sub Command1_Click()
    Dim b As Boolean
    Text1.Text = "true"
    b = CBool(Text1)
    MsgBox ("OK")
    End Sub
      

  2.   

    Private Sub Command1_Click()
        Dim b As Boolean
        if trim(text1.text)<>"" then
            if not isnumeric(text1.text) then
                msgbox "非数值!",48,"提示"
                exit sub
            else
                b = CBool(Text1)
                MsgBox ("OK")
            endif
        else
            msgbox "无内容!",48,"提示"
        end if
    End Sub
      

  3.   

    Private Sub Command1_Click()
            Dim b As Boolean
            b = CBool(Val(Text1))'这样更科学。非0转换为True,0转换为False
            MsgBox ("OK")
    End Sub
      

  4.   

    Boolean变量存储为16位(2个字节)的数值形式,所以只能与数值类型相互转换....
      

  5.   

     函数    返回类型         expression 参数范围 
    CBool  Boolean 任何有效的字符串或数值表达式。 对CBool函数来讲有效的字符串表达式只有"true"和"false"(字母不会大小写),其它非数字串都会错。你可以想一想字串“xxxxx"是表示真呢?还是表示假?(不知道吧),不知道,怎么转换?