ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 334|回复: 8

精简OptionButtonl四种选择一组代码执行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-3-21 08:40 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
OptionButton有四种选择,编号:男(12)女(11)混用(10)和全部,选择后,从精据库内提出到当前;如何精简(不想重复相同代码),自已学习编的如下;
If a = 123 Then '下式两个相同,没办法,为了四种选择
                n = n + 1
                brr(n, 1) = n
                brr(n, 2) = arr(i, 3) ' 名子
         ElseIf arr(i, 2) = a Then  '
                n = n + 1
                brr(n, 1) = n
                brr(n, 2) = arr(i, 3) ' 名子
         End If
或许用更好的办法,选择后,一组代码运行;谢谢 查名子.rar (52.2 KB, 下载次数: 8)



TA的精华主题

TA的得分主题

发表于 2024-3-21 09:07 | 显示全部楼层
If OptionButton2.Value Then a = 12
If OptionButton3.Value Then a = 11
If OptionButton4.Value Then a = 10
If OptionButton5.Value Then a = 123
If OptionButton2.Value = False And OptionButton3.Value = False And OptionButton4.Value = False Then
     MsgBox "确认性别后,再试!": Exit Sub
End If

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-21 09:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
tanglf188 发表于 2024-3-21 09:07
If OptionButton2.Value Then a = 12
If OptionButton3.Value Then a = 11
If OptionButton4.Value Then  ...

A=123是随便加了个数字,没办法用OR,选择包括10,11,12和其它;只有设定一个都不属于的数,代码重复一次,,看着都觉多余,一时想不出来办法。

TA的精华主题

TA的得分主题

发表于 2024-3-21 09:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
你都赋值了就依据A的值判断
If OptionButton2.Value = False And OptionButton3.Value = False And OptionButton4.Value = False Then
     MsgBox "确认性别后,再试!": Exit Sub
End If
就能改为
If a = 123 Then
     MsgBox "确认性别后,再试!": Exit Sub
End If

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-21 10:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
tanglf188 发表于 2024-3-21 09:44
你都赋值了就依据A的值判断
If OptionButton2.Value = False And OptionButton3.Value = False And Option ...

我的办法是没办法的办法,四种选择,怎样用一组代码执行就行。

TA的精华主题

TA的得分主题

发表于 2024-3-21 10:28 | 显示全部楼层
本帖最后由 micch 于 2024-3-21 10:29 编辑

写代码需要精简的不是代码的数量。代码多不一定不好。

建议用一个模块变量,绑定4个控件,控件变化变量自动更新,执行的代码在变量更新时自动执行

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-3-21 10:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
micch 发表于 2024-3-21 10:28
写代码需要精简的不是代码的数量。代码多不一定不好。

建议用一个模块变量,绑定4个控件,控件变化变量 ...

同意。年龄大了想不出好办法,帮忙解决一下,谢谢

TA的精华主题

TA的得分主题

发表于 2024-3-21 11:22 来自手机 | 显示全部楼层
用二进制的思路:
1. 数据库里面你的12,11,10 重新标记下
12标记为9
11标记为5
10标记为3
空白的标记为1
2. 代码部分
a=-optionbutton1*8 or -optionbutton2*4 or -optionbutton3*2 or -optionbutton5
判断时if  a and arr(i,2)then 一个就可以

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-3-21 11:24 来自手机 | 显示全部楼层
tdpzby 发表于 2024-3-21 11:22
用二进制的思路:
1. 数据库里面你的12,11,10 重新标记下
12标记为9

因为 optionbutton 真值默认为-1所以加个负号

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 01:38 , Processed in 0.041367 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表