VBA:如何仅在满足单元条件时显示复选框

时间:2016-02-12 14:13:08

标签: excel vba excel-vba

我目前正在计算政府对学校的援助计算器。我试图让它尽可能地用户友好且具有视觉吸引力。这就是我试图使用VBA的原因,因此用户不必直接在表格中输入。

我有一个简单的工作表,用户可以输入他的数据。左边是人员A的表格,右边是人员B.

我还在Person A下面有一个下拉列表,用于检查他/她是单身还是已婚。当人A是单身时,我希望人B从表中完全消失。大多数条目都没有问题。但是我在Person B下也有Active-X元素(下拉列表,复选框),因为你需要使用VBA,所以不容易隐藏它们。

当A人结婚时,是否可以仅显示这些元素?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您知道控件的名称,则可以在checkbox_click事件中执行以下操作。 假设有2个复选框,只有在单击复选框1时才能看到CheckBox2:

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
    CheckBox2.Visible = False
Else
    CheckBox2.Visible = True
End If
End Sub

或者当工作表更改时基于单元格值:

Private Sub Worksheet_Change(ByVal Target As Range)
If Range("SingleOrMarried").value = "Single" Then 'Assuming a named range for the Single or not cell.
    CheckBox1.Visible = False
Else
    CheckBox1.Visible = True
End If
End Sub

以上假设使用ActiveX控件。代码应放在包含控件的工作表的工作表模块中。您可以使用其他模块:Worksheets("PersonsOrWhatever").CheckBox1.Visible = false