VBA中类的解读及应用第十四讲:限制复选选择,程序运行过程及效果

VBA语言専攻 2024-08-04 11:23:05

《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实践经验,全部浓缩在下面的各个教程中:

0 阅读:3