窗体UserForm——选项按钮
时间:2022-07-22
本文章向大家介绍窗体UserForm——选项按钮,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
选项按钮被设置为一种可以被选中状态的按钮,而且有一个特性,在一个父对象下,只能有一个选项按钮被选中。
还是以前面激活工作表的功能为例:
在不知道有多少个工作表的时候,如何显示一个窗体界面,出现每一个工作表名称的选项,选中后按按钮激活工作表。
由于不确定工作表的数量,所以不能通过拖拽的方式添加指定数量的控件,这时候就需要用到UserForm的Initialize事件,在UserForm初始化的时候来添加控件,首先仍然拖拽一个命令按钮在窗体的最上面,修改Caption为激活,然后进入窗体代码编辑:
Private Sub UserForm_Initialize()
'定义MSForms.OptionButton变量
Dim ob As MSForms.OptionButton
Dim i As Long
Dim itop As Integer
'在按钮的位置下面开始添加选项按钮
itop = CommandButton1.Top + CommandButton1.Height + 10
For i = 1 To Worksheets.Count
'添加选项按钮
Set ob = Me.Controls.Add("Forms.OptionButton.1")
'以工作表名称设置选项按钮内容
ob.Caption = Worksheets(i).Name
'设置选项按钮的位置
ob.Left = 5
ob.Top = itop
'记录下一个选项按钮应该出现的位置
itop = itop + ob.Height + 10
Next
'设置窗体的高度,防止工作表太多看不到
Me.Height = itop + 20
End Sub
CommandButton1就是手动拖拽的命令按钮,在属性窗口里可以看到,它代表的是名称,相当于是一个变量名称,和Caption是不一样的,Caption只是显示的文本。
控件的Top 、Height、Left、Caption等属性,都可以通过窗体设计界面,先拖拽一个相应的控件,然后在属性窗口查看控件所具有的属性。
关键字Me,在这里就是指添加的窗体UserForm1,这个关键字还可以在类模块里使用,所代表的也就是那个类。
编辑按钮的激活工作表代码:
Private Sub CommandButton1_Click()
Dim i As Long
Dim t As Control
'遍历窗体上的控件
For i = 0 To Me.Controls.Count - 1
'找到的是MSForms.OptionButton控件
If VBA.TypeName(Me.Controls(i)) = "OptionButton" Then
'MSForms.OptionButton控件选中状态Value属性为True
If Me.Controls(i).Value Then
'激活工作表
Worksheets(i).Activate
Exit Sub
End If
End If
Next
End Sub
这样不论有多少个工作表(太多了也不行,窗体会太长超出显示器!),窗体界面显示的时候所有工作表都可以在上面选择了,然后点激活按钮就可以激活相应的工作表:
这样用代码的方式添加控件也让使用者更方便的控制控件的位置,修改起来也更灵活。
- 使用Nginx代理thrift NIO实现SSL链路加密
- TThreadedSelectorServer介绍及Direct Memory OOM分析
- 通过Java程序提交通用Mapreduce任务并获取Job信息
- Mapreduce 任务提交源码分析1
- Java分布式神经网络库Deeplearning4j 环境搭建和运行一个例子
- Java分布式神经网络库Deeplearning4j之上手实践手写数字图像识别与模型训练
- 调用腾讯优图开放平台进行人脸识别-Java调用API实现
- Spring的事务传播行为
- Jquery 获取checkbox属性checked为undefined和改变状态 值不变
- Hibernate--Criteria Query and DetachedCriteria
- Python3 大作战之 encode 与 decode 讲解
- SpringMVC 文件下载时 浏览器不能正确显示另存的文件名
- 手把手教你用python抢火车票
- SpringMVC 实现多文件上传的两种方式及其效率比较
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 一文带你真正了解histroy
- 介绍一个可以离线查询 IP 来源和 ISP 信息的终端利器
- 这也太简单了吧!一个函数完成数据相关性热图计算和展示
- CentOS7安装Zookeeper
- CentOS7卸载OpenJDK,然后安装Oracle JDK
- Java停止线程的四种方法
- Educational Codeforces Round 95 (Rated for Div. 2) A-D
- Go服务迁到K8s后老抽风重启? 记一次完整的线上问题解决过程
- PHP的另一个高效缓存扩展:Yac
- 在PHP中操作临时文件
- 在线IDE开发入门之从零实现一个在线代码编辑器
- 树莓派4裸机基础教程:从hello world开始
- 基于f2从零实现移动端可视化编辑器
- GORM V2 读操作
- Kubernetes 1.19.0——Pod(1)