这看起来应该很简单,但我所有的论坛搜索都没有结果。
我想要做的很简单: 我有五个复选框,我希望用户能够使用。他们需要能够选择一个,全部或任何组合。由于某种原因,我还没弄清楚如何使这项工作:
I14 J14
All Y
1 Y
2 Y
3 Y
4 Y
5 Y
以下是我到目前为止的情况 - 请有人帮我弄清楚如何做以下事情吗? 1.如果单击#1(或2,3,4,5)的复选框,则在单元格中写入一个值(当前包含“Y”)。 2.如果我取消选中#1(或2,3,4,5)的复选框,请清除单元格中的值(或写入不同的值)。 3.如果单击全部的复选框,请在该单元格中写入一个值并检查所有其他框。 4.如果我取消选中全部的复选框,请清除该单元格中的值并取消选中所有其他框。
Private Sub ChEmAll_Click()
Range("J15").Value = "Y"
End Sub
Private Sub ChEmELM_Click()
Range("J16").Value = "Y"
End Sub
Private Sub ChEmSFS_Click()
Range("J17").Value = "Y"
End Sub
Private Sub ChEmRNJ_Click()
Range("J18").Value = "Y"
End Sub
Private Sub ChEmATL_Click()
Range("J19").Value = "Y"
End Sub
Private Sub ChEmAUR_Click()
Range("J20").Value = "Y"
End Sub
答案 0 :(得分:0)
我尝试在Sheet1上使用三个复选框(CBox1,CBox2和CBox3),在这张表的代码编辑器中这是我所拥有的:
Private Sub CBox1_Change() 'Check all checkboxes
If CBox1.Value Then
Me.Range("b1") = "Y"
Else
Me.Range("b1").ClearContents
End If
Dim CBox As OLEObject
For Each CBox In Me.OLEObjects
If InStr(LCase(CBox.progID), "checkbox") > 0 Then
CBox.Object.Value = CBox1.Value
End If
Next CBox
End Sub
Private Sub CBox2_Change()
If CBox1.Value Then
Me.Range("b2") = "Y"
Else
Me.Range("b2").ClearContents
End If
End Sub
Private Sub CBox3_Change()
If CBox1.Value Then
Me.Range("b3") = "Y"
Else
Me.Range("b3").ClearContents
End If
End Sub
如果您的工作表中只有OleObjects复选框,则可以跳过勾选“If InStr(LCase(CBox.progID), "checkbox") > 0 Then
”