Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2251|回复: 2

[已解决]关于程序的简化表达

[复制链接]
发表于 2015-8-26 21:06 | 显示全部楼层 |阅读模式
本帖最后由 markang 于 2015-8-27 13:15 编辑

各位老师,同学大家晚上好,

以下代码摘自一个小程序里,在编写一些代"active x"控件的程序中遇到条件语句,经常要表达if xxxx then xxx控件的某属性true, else xxx控件的某属性false.
程序可以简化吗非得把else后面的内容填全?像下面这样?

If InStr("03,04,08,09,02", Range("j2")) Then
CheckBox9.Enabled = False
CheckBox10.Enabled = False
CheckBox8.Value = True
CheckBox4.Value = True
CheckBox5.Enabled = False
CheckBox6.Enabled = False
Else
CheckBox9.Enabled = True
CheckBox10.Enabled = True
CheckBox8.Value = False
CheckBox4.Value = False
CheckBox5.Enabled = True
CheckBox6.Enabled = True
End If
End If
最佳答案
2015-8-27 08:37
1)是否填全,看需求。

2)为什么有这么多控件。

3)写成下面这样,只是短点,是一个意思。
Sub test()
    Dim x as boolean
    x = InStr("03,04,08,09,02", Range("j2")) > 0
    CheckBox4.Value = x
    CheckBox5.Enabled = Not (x)
    CheckBox6.Enabled = Not (x)
    CheckBox8.Value = x
    CheckBox9.Enabled = Not (x)
    CheckBox10.Enabled = Not (x)
End Sub

发表于 2015-8-27 08:37 | 显示全部楼层    本楼为最佳答案   
1)是否填全,看需求。

2)为什么有这么多控件。

3)写成下面这样,只是短点,是一个意思。
Sub test()
    Dim x as boolean
    x = InStr("03,04,08,09,02", Range("j2")) > 0
    CheckBox4.Value = x
    CheckBox5.Enabled = Not (x)
    CheckBox6.Enabled = Not (x)
    CheckBox8.Value = x
    CheckBox9.Enabled = Not (x)
    CheckBox10.Enabled = Not (x)
End Sub

评分

参与人数 1 +3 收起 理由
markang + 3 赞一个!

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2015-8-27 13:14 | 显示全部楼层
谢谢iphone,我做的表格确实要很多控件,又学到一招,定义布尔值,非常好用,感谢
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-25 15:59 , Processed in 0.252119 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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