选中所有复选框以运行其他所选框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 

这是问题的一个可视化: gif

你应该尝试添加Call CHECK_BOX_PRODUCT_NAME你的第一个宏。就在End Sub之前。

由于第一个宏只是检查第二个盒子而没有运行第二个复选框的代码。

+0

这是我解决问题的命令,但是在第二个宏中,将_CheckBox1_的行'With xChk.TopLeftCell.Offset(0,3)'视为偏移量的开始。 由于我有多个勾选框,此方法将不起作用。 这是发生了什么事情的GIF https://i.imgur.com/8t5qzUR.gif 除非有办法将输入的目的地设置为.Range(“E6”),但不知道如何写这个。 – Yaris

+0

如果我理解正确,那么这是你可以做的。删除'Dim xChk'中的所有代码并将其替换为以下代码行范围(“E6”)。Value = Sheets(“Sheet1”)。Range(“B9”) – user8806233

+0

我已经尝试过您的方法,稍作修改,让我知道你的想法。我将这条信息分解成三个子目录供将来参考。 对于全选按钮'子SelectAll_CHECK_BOX() 昏暗CB作为复选框 呼叫SELECTALL_OVERIDE 对于每个CB在ActiveSheet.CheckBoxes 如果cb.Name “复选框1” 然后 cb.Value = ActiveSheet.CheckBoxes( “复选框1”)。价值 结束如果 接下来CB 结束Sub' – Yaris