首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >级联下拉更新和冻结VBA

级联下拉更新和冻结VBA
EN

Stack Overflow用户
提问于 2012-10-29 17:52:02
回答 1查看 296关注 0票数 0

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

在表单初始化中,禁用cbo_prefRoom2cbo_prefRoom3

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

我想要做的是添加一个实例,如果用户选择cbo_prefRoom1中的选项No Preference,那么所发生的是cbo_prefRoom2cbo_prefRoom3被更新为No Preference的相同值。然后禁用cbo_prefRoom2cbo_prefRoom3,直到用户更改cbo_prefRoom1.中No Preference的选项为止。

还有第二个实例,如果用户在cbo_prefRoom2中选择No Preference选项,那么cbo_prefRoom3将被更新为与No Preference相同的值并禁用。然后禁用cbo_prefRoom3,直到用户更改cbo_prefRoom2.中No Preference的选项为止。

我怎样才能做到这一点呢?

代码语言:javascript
运行
复制
Private Sub cbo_prefRoom1_Change()

' When user selects an option in cbo_prefRoom1 then cbo_prefRoom2 is enabled
    With cbo_prefRoom2
        .Enabled = Len(cbo_prefRoom1.Value) > 0
            If Not .Enabled Then
                .ListIndex = -1
            End If
    End With

End Sub

Private Sub cbo_prefRoom2_Change()

' When user selects an option in cbo_prefRoom2 then cbo_prefRoom3 is enabled
    With cbo_prefRoom3
        .Enabled = Len(cbo_prefRoom2.Value) > 0
            If Not .Enabled Then
                .ListIndex = -1
            End If
    End With

End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-29 18:18:09

像这样吗?您也可以采用相同的想法,并将其移动到cbo_prefRoom2单击事件的事件中。

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13127027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档