Excel VBA 5.30 限制输入次数的用户窗体 给你犯错的机会
限制输入次数的用户窗体 给你犯错的机会
欢迎关注我的公众号“Excel和VBA”,原创技术文章第一时间推送。
在上一节呢,我们也是学习了 多用户的窗体
不过有小伙伴说,在实际的操作测试中,发现有一个地方不太完美
那就是没有输入的次数要求,一旦输入错误就会被强行退出
这让他在测试的时候,非常的不舒服,强制退出导致之前写的一些代码都没有保存
那么问题来了,如何给与输错的机会呢?
就是给一个犯错的次数呢?
前景提要

今天我们还是用之前的窗体来继续操作,既然要限制输入的次数,那么我们声明一个变量来登记输入的次数不就可以了吗?
那么是不是真的那么简单呢?
是的,但是你写起来可能又不能实现!
因为有小伙伴已经尝试过了,每次都是不成功,
那么,轮到我这个主角了。
代码区
其实,今天的关键也就是这个次数的写法
Private Sub CommandButton1_Click()Static numsMe.HideDim k&, sth As Worksheet, rng As Range, sth1 As WorksheetSet sth = ThisWorkbook.Worksheets("用户名")s = ComboBox1.ValueWith sth.UsedRange Set rng = .Find(what:=s, searchformat:=True) If Not rng Is Nothing Then ss = rng.Offset(0, 1).Text GoTo line2 Else GoTo line End IfEnd Withline2:If ComboBox1.Value = s And TextBox2.Value = ss Then MsgBox "欢迎你登陆!" sth.Visible = xlSheetVeryHidden Application.Visible = True If s <> "admin" Then For Each sth1 In Worksheets If sth1.Name <> s Then sth1.Visible = xlSheetVeryHidden End If Next sth1 Else For Each sth1 In Worksheets sth1.Visible = xlSheetVisible Next sth1 End If Elseline: If nums < 3 Then nums = nums + 1 MsgBox "您的输入不合法请重新输入!您还有" & 3 - nums & "次" Me.Show Else Application.Visible = True sth.Visible = xlSheetVeryHidden Application.Quit End IfEnd IfEnd Sub看看效果先

成功输入3次之后,最后一次就强制要求关闭工作簿了。
这里呢,为了体现效果,所以我关闭的时候,并没有强制关闭。
代码解析
那么,既然已经实现了功能,那肯定要来讲讲代码了
大家一定很想知道,这个次数是如何得到的吧
因为很多的小伙伴都有尝试,但是结果都是每次都是重新归零,或者陷入一个死循环里面
这里我们需要接触一个新的变量方法
那就是全局变量
Static nums
就是他

他就是全局变量,代表了整个程序运行过程中,我们执行操作的次数
当第一次操作失误之后,这个时候的nums是1 ,那么他如何传递呢?
他不可能作为一个普通的变量来传递,因为你一旦点击了确定按钮,整个程序里面的变量都会被归零

所以在这个情况下,我们需要使用到全局变量
全局变量,就是只要这个程序没有结束,那么这个变量就会一直存在,而且是不断变化的
我们来测试下,接上上面的测试,我们已经失败了一次,那么我们再次尝试

因为有了全局变量的存在,所以nums的值,被成功的传递并且保存下来了。
这就是今天的核心知识点,全局变量
知道了这个,那后面的内容就很简单了
之前测试失败的小伙伴们,快快开工吧。
