选中所有复选框以运行其他所选框VBA Excel
问题描述:
我试图让“全选”复选框,但是当所有复选框被选中时,它们都不会被执行。选中所有复选框以运行其他所选框VBA Excel
从Sheet1的字段不会被导入或设置为Null
。在他们自己的复选框中,将数据从Sheet1导入到位置,但在master下不工作选择所有checkbox1开/关命令。
这是我到目前为止的代码:
Sub SelectAll_CHECK_BOX()
Dim CB As CheckBox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> "Check Box 1" Then
CB.Value = ActiveSheet.CheckBoxes("Check Box 1").Value
End If
Next CB
End Sub
而其他复选框都具有不同的范围值和子名字每个复选框下面的代码。
Sub CHECK_BOX_PRODUCT_NAME()
Dim CB As CheckBox
For Each CB In ActiveSheet.CheckBoxes
If CB.Name <> ActiveSheet.CheckBoxes("Check Box 1").Name And CB.Value <> ActiveSheet.CheckBoxes("Check Box 1").Value And ActiveSheet.CheckBoxes("Check Box 1").Value <> 2 Then
ActiveSheet.CheckBoxes("Check Box 1").Value = 2
Exit For
Else
ActiveSheet.CheckBoxes("Check Box 1").Value = CB.Value
End If
Next CB
Dim xChk As CheckBox
Set xChk = ActiveSheet.CheckBoxes(Application.Caller)
With xChk.TopLeftCell.Offset(0, 3)
If xChk.Value = xlOff Then
.Value = Null
Else
.Value = Sheets("Sheet1").Range("B9")
End If
End With
End Sub
这是问题的一个可视化:
答
你应该尝试添加Call CHECK_BOX_PRODUCT_NAME
你的第一个宏。就在End Sub之前。
由于第一个宏只是检查第二个盒子而没有运行第二个复选框的代码。
这是我解决问题的命令,但是在第二个宏中,将_CheckBox1_的行'With xChk.TopLeftCell.Offset(0,3)'视为偏移量的开始。 由于我有多个勾选框,此方法将不起作用。 这是发生了什么事情的GIF https://i.imgur.com/8t5qzUR.gif 除非有办法将输入的目的地设置为.Range(“E6”),但不知道如何写这个。 – Yaris
如果我理解正确,那么这是你可以做的。删除'Dim xChk'中的所有代码并将其替换为以下代码行范围(“E6”)。Value = Sheets(“Sheet1”)。Range(“B9”) – user8806233
我已经尝试过您的方法,稍作修改,让我知道你的想法。我将这条信息分解成三个子目录供将来参考。 对于全选按钮'子SelectAll_CHECK_BOX() 昏暗CB作为复选框 呼叫SELECTALL_OVERIDE 对于每个CB在ActiveSheet.CheckBoxes 如果cb.Name “复选框1” 然后 cb.Value = ActiveSheet.CheckBoxes( “复选框1”)。价值 结束如果 接下来CB 结束Sub' – Yaris