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的值,被成功的传递并且保存下来了。

这就是今天的核心知识点,全局变量

知道了这个,那后面的内容就很简单了

之前测试失败的小伙伴们,快快开工吧。

(0)

相关推荐