我有一个电子表格,可以使用每个订单项的复选框来提取订单项。我想在顶部放置一个复选框,在选中/取消选中时,将选中并取消选中电子表格中的所有其他复选框。以下是我到目前为止的代码,如果选中了“Check Box 1”,它将选中所有复选框,但如果取消选择它将不会取消选中它们。如果取消选中“复选框1”,我还需要添加什么才能取消选中框。谢谢你的帮助。
Sub SelectAllCheckBox()
Dim CB As CheckBox
If ActiveSheet.CheckBoxes("Check Box 1").Value Then
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
CB.Value = True
End If
Next CB
End If
End Sub
我也遇到了另一个问题。我有一个宏来清除表单,因此可以运行不同的宏。此宏中包含删除所有复选框的代码。如何使用代码使其不删除“Check Box 1”。这是我的代码。
Sheets("Quote Sheet").Select
Range("D3:D7").Select
Selection.ClearContents
Rows("11:1000").Select
Selection.Delete Shift:=xlUp
ActiveSheet.CheckBoxes.Delete
Selection.FormatConditions.Delete
我尝试了以下但是没有用。
Sheets("Quote Sheet").Select
Range("D3:D7").Select
Selection.ClearContents
Rows("11:1000").Select
Selection.Delete Shift:=xlUp
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
ActiveSheet.CheckBoxes.Delete
Selection.FormatConditions.Delete
答案 0 :(得分:3)
Sub SelectAllCheckBox()
Dim CB As CheckBox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name Then
CB.Value = ActiveSheet.CheckBoxes("Check Box 1").Value
End If
Next CB
End Sub
第二部分:
Dim CB as CheckBox, n as long, x as long
n = ActiveSheet.CheckBoxes.Count
For x = n to 1 Step -1
Set CB = ActiveSheet.CheckBoxes(x)
If CB.Name <> "Check Box 1" Then CB.Delete
Next x