下载此beplayapp体育下载

VBA中的控件数组.doc


beplayapp体育下载分类:bepaly下载苹果 | 页数:约8页 举报非法beplayapp体育下载有奖
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该beplayapp体育下载所得收入归上传者、原创者。
  • 3.下载的beplayapp体育下载,不会出现我们的网址水印。
1 / 8 下载此beplayapp体育下载
beplayapp体育下载列表 beplayapp体育下载介绍
该【VBA中的控件数组 】是由【泰山小桥流水】上传分享,beplayapp体育下载一共【8】页,该beplayapp体育下载可以免费在线阅读,需要了解更多关于【VBA中的控件数组 】的内容,可以使用beplayapp体育下载的站内搜索功能,选择自己适合的beplayapp体育下载,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此beplayapp体育下载到您的设备,方便您编辑和打印。VBA中的控件数组VBA中的控件数组2009年2月28日评论 发表评论大家都知道,和 VB不一样,VBA中不能直接创建控件数组。然而可以使用 WithEvents来模拟相同的功能。我们需要一个类来处理控件的事件,而每一个控件需要一个类实例。对于不同控件的类实例,我们可以使用一个对象数组或者集合来实现。这里使用按钮控件做为例子来介绍怎样在窗体和工作表中创建控件数组。创建类创建控件数组之前,我们需要一个类来处理控件的事件。在VBE窗口中,单击菜单“插入”->“类模块”,在属性窗口中将类的名称改为&#B”。在类模块中添加下面这一行:mandButton这样你就可以从代码栏的顶部左边下拉列表中选择 m_CB并选择右边下拉列表中相应的事件。完整的代码如下:mandButton初始化,将控件绑定到类PublicSubInit(mandButton)Setm_CB=ctl控件的Click事件PrivateSubm_CB_Click()MsgBox"你点击了:"&()Setm_CB=NothingEndSub窗体中的控件数组然后创建一个窗体,mandButton,将这两个按钮控件分别命名为 cmd1和cmd2,然后在窗体中的初始化事件中添加代码如下:PrivatectlCB(1To2)B以对象数组保存类的实例PrivateSubUserForm_Initialize()SetctlCB(1)=B将按钮cmd1赋给类的实例ctlCB(1).Initcmd1SetctlCB(2)=BctlCB(2).Initcmd2EndSub这里使用对象数组 ctlCB(1to2)来保存类实例。每当使用 Set语句创建一个类实例,然后使用类的 Init方法将按钮控件赋给这个实例。也可以使用集合来保存这个类的实例。代码如下:PrivatecolCBAsNewCollectionB‘ 以集合保存类的实例PrivateSubUserForm_Initialize()SetctlCB==,将弹出对应的消息框。上面的例子是将手动添加的控件添加到控件数组中。也可以动态创建控件数组。创建一个新的窗体,然后在窗体的初始化事件中使用mandButton控件,再将创建好的控件赋给类实例。完整代码如下:PrivatectlCB(1To3)BPrivateSubUserForm_Initialize()mandButtonFori=1To3添加按钮控件SetnCtr=("","cmdTest"&i)="CommandButton_"&,10+(i-1)*40,80,30EndWithB类实例SetctlCB(i)=B将控件赋给类实例ctlCB(i).InitnCtrNextiEndSub工作表中的控件数组同样,在工作表中也可以创建控件数组(但和窗体有些不同)。在工作表中分别创建一个 Label控件和三个CommandButton控件,如下图:然后在Label控件的Click事件中添加如下代码:DimcmdCtl()B标签控件的Click事件PrivateSubLabel1_Click()DimcmdAsOLEObject'所有OLE对象DimiAsInteger重新定义数组ReDimcmdCtl()Bi==""ThenSetcmdCtl(i)=BcmdCtl(i).=i+1EndIfNextMsgBox"mandButton控件建成控件数组!",vbInformationEndSubB的Init方法时,不能直接使用cmd变量,因为cmd变量是OLEObject类型。mandButton变量。然而在工作表中对于动态创建的控件使用同样的方法创建控件数组时,动态创建的控件并不响应类实例的事件。代码如下:DimcmdCtl(1To5)B标签控件的Click事件PrivateSubLabel1_Click()DimiAsIntegerDimcmdAsOLEObjectFori=1To5Setcmd=(ClassType:="",_Left:=Cells(i*3+3,2).Left,Top:=Cells(i*3+3,2).Top,Width:=Cells(1,1).Width*2,Height:=Cells(1,1).Height*)SetcmdCtl(i)=BcmdCtl(i)."已经成功动态创建控件数组!",vbInformationEndSub类的实例应该是创建成功了(可以在 Init方法中添加一些语句来验证),但就是不响应 Click事件,不知道是什么原因,那位知道的同学帮忙解释解释一下,多谢了。示范文件下载: |SkyDrive

VBA中的控件数组 来自beplayapp体育下载www.apt-nc.com转载请标明出处.

相关beplayapp体育下载 更多>>
非法内容举报中心
beplayapp体育下载信息