excel学习库

excel表格_excel函数公式大全_execl从入门到精通

单选还是多选?VBA中复选框的不同应用,效果也大不相同

如上篇所说,本篇文章主要对这份“培训菜单”的选择功能进行分享。如图所示:在整张表格中,我对筛选框的要求是不同的: 1,对于“培训地点”的选择:只能单选 2,对于“培训课程”的选择:不定向选择 由此,需要带有两种不同属性功能的复选框。Excel 使用时可以插入两种类型的控件,一种是表单控件也叫为窗体控件,另一种是ActiveX控件。 如图所示,在<开发工具>中, 方框控件都是多选功能,圆圈控件都是单选功能; 我最早尝试的是窗体控件,因为简单,但做的过程中发现,虽然可以实现“培训地点”是单选功能,但却培训时长不能跟着培训地点选择的变化而自动变化。经过试验,我放弃了窗体控件,改选ActiveX控件。 最终实现的效果可见下图所示: 这里需要说明的是,如果选择“上海总部”,则培训总时长自动增加1小时;如果选择“客户现场”,则培训时长自动增加30分钟,这个功能隐藏在D14行和D15行中, 如图下图可见,我在这两行中输入了文本: D14 False or Ture 60min D15 False or Ture 30min 这个False or Ture 的属性是通过代码实现的,后边有介绍。 我们先来看看下面这几个图,可见,客户写下了培训时间,系统自动算出可用时长是7小时,目前客户选择了几个课程,系统自动算出的实际培训时长是 2.5小时。当客户决定去上海总部培训时,D14处就自动改变属性成True, 同时系统自动算出的实际培训时长是 3.5小时。当客户决定让讲师去他们现场培训时,D15处就自动改变属性成True, 同时系统自动算出的实际培训时长是 3小时。当客户选择的培训课程太多,超出了计划课程时,系统会自动提示:“您勾选的培训总时长已大于计划时长,请修改”如上可见,我通过ActiveX多选控件按钮实现了单选的功能,并且还能自动算出因培训地点的不同而所需要的时间不一样的要求。 接下来,就看下如何编写复选框的代码问题了: 首先在EXCEL中,让VBA的功能加载进来,在Ecxel菜单功能区,右击如图,选择“自定义功能区”,弹出了如下对话框在弹出的对话框中,将“开发工具”添加到右侧,勾选,点“确定”后,ExceL的菜单栏中有“开发工具”这一选项了其次,在开发工具中,点ActiveX方框控件,在单元格位置用鼠标画出控件,双击进入代码编辑界面中筛选框自动名称为CheckBox1, CheckBox2, 可以右击复选框,更改名称为“上海总部”和“客户现场”,在打开的代码窗体中, 将如下两段编程输入进去,就将这两个复选框的属性设置成功了。 Private Sub CheckBox1_Click() If CheckBox1.Value = True Then CheckBox2.Value = False End Sub 此段意思是“选择了CheckBox1,那CheckBox2就不被选择;” Private Sub CheckBox2_Click() If CheckBox2.Value = True Then CheckBox1.Value = False 此段意思是“选择了CheckBox2,那CheckBox1就不被选择;” 如果你也有类似的表格要做,筛选框的操作可以按提示试验一下,配合到你的表单要求,设计出属于你的功能表格吧~~

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接