利用类模块对工作表中的ActiveX控件批量设定的注意事项
2011-05-19 13:44
253 查看
利用类模块可以减少许多重复的代码
。
以给控件
设定批量
的Click事件为例,在工作簿中定义
了以下名为clsChe的类模块:
利用该类模块,可以轻松实现对复选框进行批量设置
Change事件。
在窗体
中,只需要绑定窗体中的复选框即可,代码如下:
但是在工作表
中似乎不太容易实现,很多人试过Shapes集合,试过CheckBoxes集合,甚至改变类模块中的定义为
但会发现,这个CheckBox类型并不支持事件。
因而会给人造成工作表中的复选框控件不是MSForms.CheckBox的错觉,其实不然。
在工作表中插入的复选框和窗体中的其实是一样的。
但是在工作表中插入的复选框增加了一层Shape外衣,使用户无法直接访问到内层的MSForms.CheckBox控件。
必须脱去层层外衣才能访问到其核心控件,其实这个真正的复选框控件在这里
我们还可以利用CALLBYNAME函数来直接访问
其余代码同窗体中是一致的。
请查看附件:http://www.exceltip.net/thread-21327-1-1-11314.html
。
以给控件
设定批量
的Click事件为例,在工作簿中定义
了以下名为clsChe的类模块:
Public WithEvents Chkbox As MSForms.CheckBox Private Sub Chkbox_Change() MsgBox Chkbox.Value End Sub
利用该类模块,可以轻松实现对复选框进行批量设置
Change事件。
在窗体
中,只需要绑定窗体中的复选框即可,代码如下:
Dim Chk(1 To 4) As clsChe Private Sub UserForm_Activate() For i = 1 To 4 Set Chk(i) = New clsChe Set Chk(i).Chkbox = Me.Controls("CheckBox" & i) Next i End Sub
但是在工作表
中似乎不太容易实现,很多人试过Shapes集合,试过CheckBoxes集合,甚至改变类模块中的定义为
Public WithEvents Chkbox As CheckBox
但会发现,这个CheckBox类型并不支持事件。
因而会给人造成工作表中的复选框控件不是MSForms.CheckBox的错觉,其实不然。
在工作表中插入的复选框和窗体中的其实是一样的。
但是在工作表中插入的复选框增加了一层Shape外衣,使用户无法直接访问到内层的MSForms.CheckBox控件。
必须脱去层层外衣才能访问到其核心控件,其实这个真正的复选框控件在这里
Shapes(i).OLEFormat.Object.Object
我们还可以利用CALLBYNAME函数来直接访问
CallByName(Sheet1, "CheckBox" & i, VbGet)
其余代码同窗体中是一致的。
请查看附件:http://www.exceltip.net/thread-21327-1-1-11314.html
相关文章推荐
- uboot环境变量设定注意事项
- 利用 Intellij IDEA 10 开发多工程Grails应用的关键步骤及注意事项(随笔)
- Android第十七课 Jni string空串跨模块使用崩溃注意事项
- nodejs 的 express-session 模块之 cookie.secure 选项使用注意事项
- maven分模块间依赖注意事项
- 利用Web Deploy 远程发布注意事项
- Tcl/Expect中利用exec调用管道"|"和awk的注意事项
- Java利用HttpClient模拟POST表单操作应用及注意事项
- 分页利用PageHelper.startPage(page, rows)时所放位置的注意事项
- 利用perl输出文件时的注意事项
- 利用SVN钩子同步程序注意事项
- 利用结构体时的注意事项
- Linux(Centos)之安装Nginx及注意事项 阅读目录 1.Nginx的简单说明 2.准备工作 3.安装SSL功能需要openssl库以及gzip模块需要的zlib库 4.安装 rewri
- 利用Directshow开发传输filter注意事项
- python GDAL/OGR模块安装注意事项
- 数控振荡器NCO使用verilog实现时NCO初始值和上限值设定时的注意事项
- keil 配置超声波模块注意事项
- 编译内核模块 .ko文件的注意事项 缺少:mmzone.h bounds.h
- kettle自定义常量模块注意事项
- iOS 循环利用的注意事项