Excel VBA 5.30 限制输入次数的用户窗体 给你犯错的机会

Excel VBA 5.30 限制输入次数的用户窗体 给你犯错的机会
2021年04月22日 11:01 晓雯子16

前景提要

在上一节呢,我们也是学习了多用户的窗体

不过有小伙伴说,在实际的操作测试中,发现有一个地方不太完美

那就是没有输入的次数要求,一旦输入错误就会被强行退出

这让他在测试的时候,非常的不舒服,强制退出导致之前写的一些代码都没有保存

那么问题来了,如何给与输错的机会呢?

就是给一个犯错的次数呢?

场景说明

今天我们还是用之前的窗体来继续操作,既然要限制输入的次数,那么我们声明一个变量来登记输入的次数不就可以了吗?

那么是不是真的那么简单呢?

是的,但是你写起来可能又不能实现!

因为有小伙伴已经尝试过了,每次都是不成功,

那么,轮到我这个主角了。

代码区

其实,今天的关键也就是这个次数的写法

我们先来看看这个代码

Private Sub CommandButton1_Click()

Static nums

Me.Hide

Dim k&, sth As Worksheet, rng As Range, sth1 As Worksheet

Set sth = ThisWorkbook.Worksheets("用户名")

s = ComboBox1.Value

With sth.UsedRangeSet rng = .Find(what:=s, searchformat:=True)If Not rng Is Nothing Thenss = rng.Offset(0, 1).TextGoTo line2ElseGoTo lineEnd If

End With

line2:

If ComboBox1.Value = s And TextBox2.Value = ss Then

MsgBox "欢迎你登陆!"sth.Visible = xlSheetVeryHiddenApplication.Visible = TrueIf s "admin" ThenFor Each sth1 In WorksheetsIf sth1.Name s Thensth1.Visible = xlSheetVeryHiddenEnd IfNext sth1ElseFor Each sth1 In Worksheetssth1.Visible = xlSheetVisibleNext sth1End IfElse

line:If numsnums = nums + 1

MsgBox "您的输入不合法请重新输入!您还有" & 3 - nums & "次"Me.ShowElseApplication.Visible = Truesth.Visible = xlSheetVeryHiddenApplication.QuitEnd If

End If

End Sub

看看效果先

成功输入3次之后,最后一次就强制要求关闭工作簿了。

这里呢,为了体现效果,所以我关闭的时候,并没有强制关闭。

代码解析

那么,既然已经实现了功能,那肯定要来讲讲代码了

大家一定很想知道,这个次数是如何得到的吧

因为很多的小伙伴都有尝试,但是结果都是每次都是重新归零,或者陷入一个死循环里面

这里我们需要接触一个新的变量方法

那就是全局变量

Static nums

就是他

他就是全局变量,代表了整个程序运行过程中,我们执行操作的次数

当第一次操作失误之后,这个时候的nums是1,那么他如何传递呢?

他不可能作为一个普通的变量来传递,因为你一旦点击了确定按钮,整个程序里面的变量都会被归零

所以在这个情况下,我们需要使用到全局变量

全局变量,就是只要这个程序没有结束,那么这个变量就会一直存在,而且是不断变化的

我们来测试下,接上上面的测试,我们已经失败了一次,那么我们再次尝试

因为有了全局变量的存在,所以nums的值,被成功的传递并且保存下来了。

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

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

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

财经自媒体联盟更多自媒体作者

新浪首页 语音播报 相关新闻 返回顶部