作者:乔山办公网日期:
返回目录:excel表格制作
以下代码循环当前窗体上的所有控件抄,如果存在复选框控件,则将控件状态取反。希望对你有帮助袭
Dim nControl as Control
For Each nControl In Me.Controls
If TypeName(nControl ) = "CheckBox" Then
nControl .Value = Not nControl .Value
End If
Next
再给你段代码,按控件名设置zd状态(将CheckBox1等换成你的控件名):
Dim ctlArray as Variant
Dim i As Integer
ctlArray = Array("CheckBox1", "CheckBox2", "CheckBox3")
For i = 0 To Ubound(ctlArray)
Me.Controls(ctlArray(i)).Value = Not Me.Controls(ctlArray(i)).Value
Next i
这个问题主要是用到VBA 窗体的事件. 单击checkbox事触发修改单元e799bee5baa6e79fa5e98193e58685e5aeb9363格内容的动作. 具体操作如下:
1.在VBA编辑器中打开你的这个窗体,双击具体的一个CheckBox. 然后会进入此窗体的代码页面.系统会自动帮你建立一个checkbox的单击事件.
Private Sub CheckBox1_Click()
'这里添加你的代码
End Sub
2. 你的代码是通过判断单击的checkbox的状态来执行操作, 这个用到checkbox的Value属性.如:
Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
With ActiveSheet.Range("A1")
.Offset(1, 0) = "Hello!"
.Offset(2, 0) = TextBox1.Value
End With
Else
With ActiveSheet.Range("A1")
.Offset(1, 0).ClearContents
.Offset(2, 0).ClearContents
End With
End If
End Sub
以上只是举例,没有套用你的代码. 我做了个简单的示例,可以下载查看.
你有4个checkbox最简单的做法就是针对每个checkbox都添加一个单击事件. 单击事件也可以用change事件替代.
软件版本:Office2007
方法如下:
1.可以通过录制宏,插入一个复选框,然后查看代码如下:
2.然后修改代知码成为我们想要的,ActiveSheet即工道作表,我们改成Sheet1
四个数据专,分别是距离顶端位置,距离左边位置,复选框长度,复选框高度(可以更改数值,看看复选框的变化,就能知道每个数据的意思),改成我们需要的,如果是在某个单元格中,可以利用range的top和left选项获得单元格的位置,如下图所示代码:
3.F5执行代码,返回Excel,就可以看属到插入的复选框:
常量数组中的参数也没有21个吧。
Nums = Array(14, 15, 16, 18, 21, 24, 27, 30, 33, 36)
好像只有10个
循环运行了21次