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

433 篇文章 2 订阅

《VBA中类的解读及应用》教程【10165646】是我推出的第五套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。

类,是非常抽象的,更具研究的价值。随着我们学习、应用VBA的深入,有必要理解这些抽象的理论知识。对象,类,过程,方法,属性,事件,接口,接口如何实现等等。掌握了这些理论,不仅对于VBA这种寄生语言的实质有所深入的理解,也对自然界的很多事物将同样有所感悟。目前,这套教程程序文件已经通过32位,64位两种office系统测试。

这套教程共两册,八十四讲,今后一段时间会给大家陆续推出修订后的教程内容。今日的内容是:VBA中类的解读及应用第十四讲:限制复选选择,程序的运行过程及效果b90d8b4e4a5e130d3e5beaa0b86397a4.jpeg

【分享成果,随喜正能量】心好命又好 , 富贵直到老;命好心不好 , 福变为祸兆;心好命不好 , 祸转为福报;心命俱不好 , 遭殃且贫夭;心可挽乎命, 最要存仁道;命实造于心 , 吉凶惟人召;信命不修心 , 阴阳恐虚矫;修心一听命 , 天地自相保 。。

第十四讲 限制复选选择(下)

大家好,我们继续讲解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 程序的运行效果

下面看运行的结果:

a82ca4b4e41be3d103a1b550ee3209dd.jpeg

我们选择”E”,其他的按钮会不允许再选择:

8c85972b0ff38a35d4eaa3200290611f.jpeg

修改时,点重置:这个时候每个选择按钮回到初始状态。

9d0919656d2c9619463701547a5558aa.jpeg

到这里,对于单选的选择题的代码就写完了,大家会看出,代码非常的简单,但里面有很多关于类,事件的定义及应用,大家可以试着应用,如果多个选择题,只要建立一个循环变量就可以了,对于记录答题结果的代码也可以再略加修改,以便记录每题的答案。

3e6507e969911c733a5ed63b748f0ff7.jpeg

今日内容回向:

1 如果想设置为可以选择两个答案,上述代码将如何修改?

本讲内容参考程序文件:VBA-CLASS(1-28).xlsm

b6a9a65fd0359c8b6215c39c50d9677d.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

20d257e932924fe430468a456f2fc074.jpeg


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值