精华内容
下载资源
问答
  • VB中如何使用select case语句

    千次阅读 2020-01-04 14:46:35
    近来,在网上找了一些关于VB选择语句代码样例讲解,不过可惜关于Select case的讲解甚少(可能是查找方向有误),遂,作此,如有不足还望评论去添补 语法 Select Case <指示变量或表达式> Select Case...

    近来,在网上找了一些关于VB选择语句的代码样例讲解,不过可惜关于Select case的讲解甚少(可能是查找方向有误),遂,作此,如有不足还望评论去添补

    语法

    Select Case <指示变量或表达式>

    Select Case不是循环语句,是条件选择语句,与IF...ELSEIF...ELSEIF...END IF类似

    <默认语句组,以上语句组都因情形不符合实际时执行>End Select其中,表述情形的关键字,有IS和TO,多个情形要并列在一起时,使用逗号(英文)连接。当省略Case Else语句并且语句组都因情形不符合实际时,语句的执行,会直接到达End Select。如果在执行语句的时候,有需要跳过没有必要再执行的语句而直接结束Select Case的情况时,请使用exit select

    Option explicit
    dim digital,hours,minutes,seconds,dn,ctime
    
    digital = time
    hours    =  Hour(digital)
    minutes  =  Minute(digital)
    seconds  =  second(digital)
    
    Select Case True
    Case hours<6
    dn= "it is time to dream!"
    Case hours>=6
    dn= "get up and say good morning!"
    Case hours>12 & hours<14
    dn= "let's have a rest!"
    Case else
    	dn="I don't know what to do!"
    End Select
    msgbox dn
    

    注意在“<指示变量或表达式>”不是True或False关键字时,逻辑运算(And、Or、Not)会没有意义。因为逻辑运算的结果是True或False,不是表述具体情况的值或者范围。

     

     

     

     

    展开全文
  • 1.Select Case结构格式: Select Case e Case e1 A组语句 Case e2 B组语句 …… Case Else n组语句 End Select 2.说明 ?e为测试表达式,可以是算术表达式或字符表

    1.Select Case结构格式:  
        Select Case e
            Case  e1
                  A组语句
            Case  e2
                 B组语句
            ……
            Case  Else
                n组语句 
        End Select

    2.说明 
    ?e为测试表达式,可以是算术表达式或字符表达式,其值应是数字或字符型
    ?e1、e2等是测试项,取值必须与测试表达式的值类型相同,常用形式为:
          ?具体取值,用逗号隔开,如:1,5,9 
          ?连续的范围:界1 TO 界2 ,如:12 To 20 
          ?满足某个条件:Is运算符,如:Is>10      
          ?三种形式可以组合使用

    补充:关于is的用法

    1、case is<5 ,is>10 正确,表示或的关系

        case is>5 and is<10      用来表示并的关系不正确

    若要用is表示并的关系,可以在select case中再嵌入select case

    如:

    Option Explicit

    Dim a

    Private Sub Form_Click()

    a = Val(InputBox("成绩"))

        Select Case a

    Case Is > 80

    Select Case a 

    Case Is < 90

    Print "良"

    End Select

    End Select

    End Sub

    2、如果想用关系运算符来表示范围的话,可以按照顺序写select case事件。执行到满足条件的语句就会输出。

    如:case is>90

    print a

    case is>80

    print b

    case is >70

    print c

    ....

    end select

    3、组合示例

    Select Case a
            Case Is > 100, 5, 0 To 2, 20 To 30
                Print "真棒"
        End Select

     

     

    3.例题

    题目:根据学生的成绩,判断其等级:

    条件成绩≥9080≤成绩<9070≤成绩<8060≤成绩<70成绩<60
    等级优秀良好中等及格不及格
    程序界面:

     理解VB中选择语句Select Case结构的最好例子 - wuhua_csy - wuhua_csy的博客

    程序代码:

    Option Explicit

    Private Sub Command1_Click()
      Dim x As Integer    '定义变量x 为整形数
      x = Val(Text1.Text)  '把文本框Text1里显示内容通过Val函数转成数值型数据再赋值给变量x 
      Select Case x         '测试表达式的值为x
        Case Is >= 90              '测试表达式的值x大于等于90情况下
          Text2.Text = "优秀"    '文本框Text2中显示“优秀”
        Case 80 To 90             '测试表达式的值x在80至90情况下
          Text2.Text = "良好"     '文本框Text2中显示“良好”
        Case 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 '测试表达式的值x为70、71、72、73、74、75、76、77、78、79情况下
          Text2.Text = "中等"     '文本框Text2中显示“中等”
        Case 60, 61, 62, 63 To 66, Is >= 67 '测试表达式的值x为60、61、62、63、在64至66情况下、大于等于67的情况下
          Text2.Text = "及格"     '文本框Text2中显示“及格”
        Case Else                    '测试表达式的值x在其它情况下
          Text2.Text = "不及格" '文本框Text2中显示“不及格”
        End Select
    End Sub

    '以下代码是清除文本框Text1、Text2中所显示的内容,且将焦点放在文本框Text1上

    Private Sub Command2_Click()
       Text1.Text = ""
       Text2.Text = ""
       Text1.SetFocus
    End Sub

    '以下代码是程序退出

    Private Sub Command3_Click()
       End
    End Sub

    展开全文
  • VB使用select case选择法实现课程表查询,原以为这是一个数据库程序,后来发现是把查询的内容写入case语句中,主要练习Vb中的select case语句的用法,下载后,直接在VB6.0下编译即可看到效果。
  • vb.net中case可以写比较表达式>,看以下vb.net代码,确是c#switch case没有 Select Case DateDiff(DateInterval.Minute, dtLineStart, dtTmpStart) Case Is lngTmp

    与vb.net中case可以写比较表达式>,<,=等,但在c# (3.0及以下,不知道以后会不会加上)中就没有这样的功能

    看以下vb.net代码,确是c#的switch case没有的

                    Select Case DateDiff(DateInterval.Minute, dtLineStart, dtTmpStart)
                        Case Is < -60
                            lngTmpQTY = 0
                        Case Is < 0
                            intTmpSec = DateDiff(DateInterval.Second, dtLineStart, dtTmpEnd)
                            If intTmpSec > 0 Then
                                lngTmpQTY = dblQTYPerMin * intTmpSec
                            Else
                                lngTmpQTY = 0
                            End If
                        Case Is = 0
                            intTmpSec = DateDiff(DateInterval.Second, dtTmpStart, dtTmpEnd)
                            If intTmpSec > 0 Then
                                lngTmpQTY = dblQTYPerMin * intTmpSec
                            Else
                                lngTmpQTY = 0
                            End If
                        Case Is > 0
                            intTmpSec = DateDiff(DateInterval.Second, dtTmpStart, dtTmpEnd)
                            If intTmpSec > 0 Then
                                lngTmpQTY = dblQTYPerMin * intTmpSec
                            Else
                                lngTmpQTY = 0
                            End If
                        Case Else
                            lngTmpQTY = 0
                    End Select

    上面就代码就是在比较case中的大小,case中的 Is是个关键字

    展开全文
  • 【学生】vb中的各种限制

    热门讨论 2019-08-12 18:35:56
    在学生信息管理系统会遇到输入姓名、学号、联系电话和日期时候,这个时候为了方便使用,往往是需要限制一下文本框输入信息。 【正文】 限制文本框只能输入数字和删除键 Private Sub txtClassno_KeyPress...

    【前言】

    在学生信息管理系统中会遇到输入姓名、学号、联系电话和日期的时候,这个时候为了方便使用,往往是需要限制一下文本框的输入信息的。

    【正文】

    • 限制文本框只能输入数字和删除键
    Private Sub txtClassno_KeyPress(KeyAscii As Integer)
        Select Case KeyAscii
            Case 48 To 57
            Case 8
        Case Else
            KeyAscii = 0
            MsgBox "请输入数字", vbOKOnly + vbExclamation, "提示"
            txtClassno.Text = ""
        End Select
    End Sub
    
    • 限制文本框只能输入汉字和删除键
    Private Sub txtDirector_KeyPress(KeyAscii As Integer)
        If KeyAscii >= -20319 And KeyAscii <= -3652 Or KeyAscii = 8 Then
        Else
            KeyAscii = 0
            MsgBox "请输入汉字!", vbOKOnly + vbExclamation, "提示"
            txtDirector.SetFocus
        End If
    End Sub
    
    
    • 限制输入的数字长度
    If Len(txtTel.Text) <> 11 Then
        MsgBox "请输入11位数字电话号码", vbOKOnly + vbExclamation, "警告"
        txtTel.Text = ""
        txtTel.SetFocus
        Exit Sub
    End If
    
    • 禁止复制
    '禁止单击右键
    Private Sub txtName_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        If Button = MouseButtonConstants.vbRightButton Then
        MsgBox "右键菜单被禁用.", vbOKOnly, "对不起"
        End If
    End Sub
    
    •  禁止使用剪切板
    '清空剪切板
    Private Sub txtCardNo_KeyDown(KeyCode As Integer, Shift As Integer)
        If Shift = 2 And KeyCode = vbKeyV Then  '如果是Ctrl+V,清空剪贴板
            Clipboard.Clear
        End If
    End Sub
    
     '清空剪切板
    Private Sub txtCardNo_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
        If Button = 2 Then      '如果是右键,清空剪贴板
            Clipboard.Clear
        End If
    End Sub
    • 限制文本框的内容不为空
    '限制文本框输入内容不为空
    If Not Testtxt(txtClassno.Text) Then
         MsgBox "请输入班号!", vbOKOnly + vbExclamation, "警告"
         txtClassno.SetFocus
         Exit Sub
    End If
    
    •  判断文本框是否输入数字
    '判断输入文本框是否输入数字
    If Not IsNumeric(Trim(txtSID.Text)) Then
        MsgBox "请输入数字!", vbOKOnly + vbExclamation, "警告"
        Exit Sub
        txtSID.SetFocus
    End If
    
    •  限制成绩的取值范围是0-120
    '限制成绩的取值范围是0-120
    Private Sub txtResult_Change()
    On Error Resume Next
    If Val(Trim(txtResult.Text)) > 120 Or (Trim(txtResult.Text)) < 0 Then
        MsgBox "输入数字超出范围,请重新输入"
        txtResult.Text = ""
        txtResult.SetFocus
    End If
    End Sub
    
    •  限制用户名只能输入数字和字母
    '限制用户名只能输入数字和字母
    Private Sub txtUsername_KeyPress(KeyAscii As Integer)
        Select Case KeyAscii
            Case 48 To 57  '只能输入数字
            Case 65 To 90  '只能输入大小写字母
            Case 97 To 122
            Case 8 ' 只能输入退格
            Case Else
            KeyAscii = 0  '不能输入空格
            End Select
    End Sub
    
    • 只能输入汉字和数字
    If ((KeyAscii <= 57 And KeyAscii >= 48) Or (KeyAscii <= -3652 And KeyAscii >= -20319) Or KeyAscii = 8) = False Then KeyAscii = 0
    
    
    •  只能输入数字和英文字母
    Private Sub Text1_KeyPress(KeyAscii As Integer)
        If ((KeyAscii >= 48 And KeyAscii <= 57) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122)) = False Then KeyAscii = 0
    End Sub
    
    • 只能输入汉字和英文字母
    Private Sub txtName_Change()
        txtName.MaxLength = 10  '限制长度为10
    End Sub
    Private Sub txtName_KeyPress(KeyAscii As Integer)
         If ((KeyAscii <= -3652 And KeyAscii >= -20319) Or (KeyAscii >= 65 And KeyAscii <= 90) Or (KeyAscii >= 97 And KeyAscii <= 122) Or KeyAscii = 32 Or KeyAscii = 8) = False Then
            KeyAscii = 0
        End If
    End Sub
    
    • 限制特殊符号,只能输入汉字和字母
    Private Sub txtCoursename_KeyPress(KeyAscii As Integer)
        If KeyAscii < 0 Or KeyAscii = 8 Or KeyAscii = 13 Then
            ElseIf Not Chr(KeyAscii) Like "[a-zA-Z]" Then
            KeyAscii = 0
        End If
    End Sub
    
    • 限制出生日期早于入学日期 
    Dim borndate As Date  
    Dim getdate As Date'定义变量  
    borndate =Trim(txtBorndate.Text)  
    getdate =Trim(txtRudate.Text)  
    If getdate<=borndate then'进行比较  
        MsgBox"入学时间不能早于出生时间,请重新输入",vbOKOnly + vbInformation,"警告"  
        txtRudate.SetFocus  
        Exit Sub  
    End If  
    
    • 限制文本框的输入长度
    txtClassno.MaxLength = 10
    
    • 限制文本框输入内容的取值范围
    If Val(txtClassno.Text) > 2147483647 Or Val(txtClassno.Text) < 1Then
        MsgBox "输入数值在1到2147483647范围内"
        txtClassno.SetFocus
        Exit Sub
    End If
    
    • 限制家庭住址不能输入特殊字符。
    Private Sub txtAddress_KeyPress(KeyAscii As Integer)
        Dim cTemp As String
        cTemp = "`~!@#$%^&*()-=_+[]{};:'\|<>/?.‘“”’、,。——+()《》?,~·……¥!:;【】" & """ '禁止输入特殊的字符"
        If InStr(1, cTemp, Chr(KeyAscii)) <> 0 Then
            KeyAscii = 0
        End If 
    End Sub
    

     

    • 限制text框不可以输入

     locked属性锁定 。 

    • 显示combobox控件不可以输入

    style属性值为2进行锁定。  

     

    【后记】

    暂时先总结这些吧,欢迎斧正~

    展开全文
  • Select Case KeyAscii Case 48 To 57 '只能输入数字 Case 65 To 90 '只能输入大写字母 Case 97 To 122 '只能输入小写字母 Case 8 '只能输入退格 Case Is &lt; 0, &amp;H20, &amp...
  • VB.NET中的程序流控制

    2017-12-03 11:15:47
    if语句If 表达式 Then ...IIF(表达式1,表达式2,表达式3)dim a AS Integer = IIF(1>0,1,2) '/ 此时a=1 等同于java中的三目运算符SelectCase 语句 SelectCase语句是分支选择语句,它通过表达式的 值与多个不同
  • VB中事件和方法区别

    万次阅读 2012-08-19 21:30:07
    以人体为类, 你可以把人体看作窗体对象,耳朵作为窗体上一个控件,比如说你听到了一句话,这时就激活了耳朵... select case 说话人 case 老婆: call 全心全意听话() case 老板: call 尽力听话() c
  • 输入intXs 返回sglXs 最后可以用return语句,也可以用getSelectXS = sglXs Public Function getSelectXS(ByVal intXs As Integer) As Single Dim sglXs As Single ... Select Case intXs Case 1 ...
  • select case 语句可以使用关系运算符大于>小于<等于=等关系运算符,需要用关键字is和to,select case的用法示例:Dim money As Integermoney = Text1.TextSelect Case moneyCase Is < 1000(如果钱小于...
  • vb中textbox刷新无闪烁方法

    千次阅读 2008-02-21 08:17:00
    更改代码如下:Private Sub Mcom_OnComm() 所有通讯事件都可以激发MSComm1控件OnComm事件Select Case Mcom.CommEventCase comEvReceive此处代码可以进行当串口接受缓冲区里有RThreshold个字符处理 
  • Select Case suanfa Case "+" Text1.Text = m1 + m2 m4 = Val(Text1.Text) - m1 Case "-" Text1.Text = m1 - m2 m4 = m1 - Val(Text1.Text) Case "*" Text1.Text = m1 * m2 m4 = Val(Text1.Text) / m1 Case "/" If ...
  • VB程序员眼中C# 9

    2008-06-08 21:30:00
     在C# 中Switch 是分支判断语句,它类似于VB 中的...比如: 在VB中: Select Case X Case 1 Func1 Case 2 Func 2 End Select 在C#中: switch (x); { case 1: func1(); break; case 2: func2(0); b
  • VB转学VCswitch困惑

    千次阅读 2008-12-30 20:13:00
    刚从VB转学VC,发现但switch语句与select case 很相似,其实它们有很大的...看不去不如VB灵活,其实这样的结构目的是通过构造特殊的二进制编码并利用寄存器技术提高效率,而VB中的select case语句最终还是转化为if el
  • VB中自动检测串口输入

    千次阅读 2005-01-24 11:15:00
    VB6.0,通信控件在“工程” ――“部件”,选中 Microsoft Comm Control6.0其文件为 mscomm32.ocx该控件唯一一个事件就是OnComm事件。随着CommEvent属性值变化,其后的Case程序代码便被引发。如此就是自动检测...
  • VB程序员眼中的C# 9 (转)[@more@] 在C# 中Switch 是分支判断语句,它类似于vb 中的Case’语句。比如:  在VB中:  select Case X  Case 1  Fu...
  • 创建视图,需要查询数据库指定字段特定字符,代码以下: quetn = "create view que_ta AS select max(que_info.test_id) as test_id,sum(case when instr(1, que_category.cate_name, '选择题')>0 then 1 end) as ...
  • EXCEL使用VB按列排序

    千次阅读 2016-10-31 16:38:37
    Range("A1:A10").Select ' 2 按A列升序排,有标题行 Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopT
  • 今天帮朋友写VB小程序,一回...VB有2种方法可以一次性将字符串放入数组: 方法一: a=array("abc","abcd","ttt") 方法二: b="abc,abcd,ttt" a=split(b,",") Select Case <变量名> ...
  • 分享两个用于告白的VB脚本程序

    千次阅读 2020-01-27 15:31:47
    新建个记事本文件txt,复制如下代码到文件,然后命个名以vbs为后缀,双击打开就可以运行了。 第一个: msgbox"我有一件事想跟你说" msgbox"自从我遇见你,我便对你难以忘怀了...Select Case msgbox("2020我们一...

空空如也

空空如也

1 2 3 4
收藏数 73
精华内容 29
关键字:

casevb中的select