级联下拉列表更新并冻结VBA

时间:2012-10-29 17:52:02

标签: excel vba excel-vba

我有三个组合框: cbo_prefRoom1,cbo_prefRoom2,cbo_prefRoom3

表单初始化 cbo_prefRoom2 cbo_prefRoom3 已停用。

当用户在 cbo_prefRoom1 中选择一个选项时,它会启用 cbo_prefRoom2 。 当用户在 cbo_prefRoom2 中选择一个选项时,它会启用 cbo_prefRoom3

我想要做的是添加一个实例,如果用户在 cbo_prefRoom1 中选择选项No Preference,那么 cbo_prefRoom2 cbo_prefRoom3 使用相同的No Preference值进行更新。然后, cbo_prefRoom2 cbo_prefRoom3 将被停用,直到用户更改 cbo_prefRoom1 No Preference的选项。

还有第二个例子,如果用户在 cbo_prefRoom2 中选择了选项No Preference,那么 cbo_prefRoom3 会使用相同的值{{ 1}}和禁用。然后, cbo_prefRoom3 将被停用,直到用户更改 cbo_prefRoom2 中的No Preference选项为止。

我如何实现这一目标?

No Preference

1 个答案:

答案 0 :(得分:1)

这样的东西?您也可以采用相同的想法并将其移至cbo_prefRoom2点击事件的活动。

If cbo_prefRoom1.Value = "No Preference" Then
  cbo_prefRoom2.value = "No Preference"
  cbo_prefRoom3.value = "No Preference"
Else
  With cbo_prefRoom2
    .Enabled = Len(cbo_prefRoom1.Value) > 0
    If Not .Enabled Then
      .ListIndex = -1
    End If
  End With
End If