如何通过在 VBA Excel 中使用复选框来 enable/disable 命令按钮
How to enable/disable CommandButtons by using checkboxes in VBA Excel
目的是如果命令按钮 "Examine 1" 旁边的复选框被手动激活,命令按钮 "Examine 1" 应该被停用。这意味着如果整个按钮 "Execute all" 被按下,那么除了 "Examine 1" 按钮之外,下面的所有其他按钮都将被一个接一个地触发。我已经为 "Examine 1" 按钮和复选框 1 编写了 Sub。我只是不知道如何将复选框的 Sub 集成到 "Examine 1" Sub 中。目前,如果我按下整个 BUtton "Execute all",那么无论复选框是否被标记,Button "Examine 1" 也会被执行。
这是 "Examine 1" 按钮的宏
Sub Examine_Click()
....
...
这个是 Sub for the checkbox 指的是 Sub "Examine_Click()"
Private Sub CheckBox1_Click()
Dim b As Button
Set b = ActiveSheet.Buttons("Button 4")
If CheckBox1.Value = True Then
b.Enabled = True
b.Font.ColorIndex = 1
Else: b.Enabled = False
b.Font.ColorIndex = 15
End If
End Sub
在您的复选框代码中,您永远不会启用按钮:If CheckBox1.Value = True Then: b.Enabled = False
| Else: b.Enabled = False
。但这不是问题。
你声明 ExecuteAll 按钮应该调用与其他按钮关联的 Subs 但我不确定 b.Enabled
属性 是否会阻止来自 运行,它只会禁用用户的点击。在 ExecuteAll_Click()
中,您应该在执行相关按钮的代码之前测试相关的复选框。
解决方法是:
If Worksheets("Control").CheckBox1.Value = True Then
这意味着如果复选框被激活,主宏开始 运行,否则直接跳到 "end sub"
目的是如果命令按钮 "Examine 1" 旁边的复选框被手动激活,命令按钮 "Examine 1" 应该被停用。这意味着如果整个按钮 "Execute all" 被按下,那么除了 "Examine 1" 按钮之外,下面的所有其他按钮都将被一个接一个地触发。我已经为 "Examine 1" 按钮和复选框 1 编写了 Sub。我只是不知道如何将复选框的 Sub 集成到 "Examine 1" Sub 中。目前,如果我按下整个 BUtton "Execute all",那么无论复选框是否被标记,Button "Examine 1" 也会被执行。
这是 "Examine 1" 按钮的宏
Sub Examine_Click()
....
...
这个是 Sub for the checkbox 指的是 Sub "Examine_Click()"
Private Sub CheckBox1_Click()
Dim b As Button
Set b = ActiveSheet.Buttons("Button 4")
If CheckBox1.Value = True Then
b.Enabled = True
b.Font.ColorIndex = 1
Else: b.Enabled = False
b.Font.ColorIndex = 15
End If
End Sub
在您的复选框代码中,您永远不会启用按钮:If CheckBox1.Value = True Then: b.Enabled = False
| Else: b.Enabled = False
。但这不是问题。
你声明 ExecuteAll 按钮应该调用与其他按钮关联的 Subs 但我不确定 b.Enabled
属性 是否会阻止来自 运行,它只会禁用用户的点击。在 ExecuteAll_Click()
中,您应该在执行相关按钮的代码之前测试相关的复选框。
解决方法是:
If Worksheets("Control").CheckBox1.Value = True Then
这意味着如果复选框被激活,主宏开始 运行,否则直接跳到 "end sub"