《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。
类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。
这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十四讲:限制复选选择,程序的运行过程及效果
【分享成果,随喜正能量】心好命又好 , 富贵直到老;命好心不好 , 福变为祸兆;心好命不好 , 祸转为福报;心命俱不好 , 遭殃且贫夭;心可挽乎命, 最要存仁道;命实造于心 , 吉凶惟人召;信命不修心 , 阴阳恐虚矫;修心一听命 , 天地自相保 。。
第十四讲 限制复选选择(下)
大家好,我们继续讲解VBA中类的解读及应用,今日内容是第14讲。我们的问题是限制复选框的选择,在前两讲中我们讲了类模块和窗体模块的代码,今天我们讲程序的运行过程。
5 程序的运行过程
1) 当我们点击要答题时,首先会执行UserForm6.Show弹出。
2) 窗体弹出的时候构建函数同时执行。
3) 当点击某个答案选择时,由于OptionButton关联到了类事件的执行对象,所以将执行类模块中xuanzhe_Click事件。这个事件中
Private Sub xuanzhe_Click() '类的数据改变事件
Dim index As Long
yy = xuanzhe.Name
index = Mid(xuanzhe.Name, 13) '取出OptionButtonN中的数字N
If yemian.Controls("OptionButton" & index).Value = True Then
Sheets("12.13.14").Cells(1, 1) = yemian.Controls("Label" & index + 1).Caption
For i = 1 To 5
If i <> index Then
yemian.Controls("OptionButton" & i).Enabled = False
End If
Next
End If
End Sub
要完成几个动作:
① index = Mid(xuanzhe.Name, 13) 取得选择按钮的序号
② Sheets("12.13.14").Cells(1, 1) = yemian.Controls("Label" & index + 1).Caption将选中的选择按钮对应的文本写入工作表之中.
③ For i = 1 To 5
If i <> index Then
yemian.Controls("OptionButton" & i).Enabled = False
End If
Next
对于没有选中的选择按钮将Enabled 值变成False,也就是说不能再进行选择了。
4) 当点击重置按钮时
For i = 1 To 5
Controls("OptionButton" & i).Value = False
Controls("OptionButton" & i).Enabled = True
Next
将每个选择按钮设置为可见,值设置为FALSE
6 程序的运行效果
下面看运行的结果:
我们选择”E”,其他的按钮会不允许再选择:
修改时,点重置:这个时候每个选择按钮回到初始状态。
到这里,对于单选的选择题的代码就写完了,大家会看出,代码非常的简单,但里面有很多关于类,事件的定义及应用,大家可以试着应用,如果多个选择题,只要建立一个循环变量就可以了,对于记录答题结果的代码也可以再略加修改,以便记录每题的答案。
今日内容回向:
1 如果想设置为可以选择两个答案,上述代码将如何修改?
本讲内容参考程序文件:VBA-CLASS(1-28).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中: