因此,我有两个组合框Combobox1
和Combobox2
。如果用户为Combobox1
选择了“ Apple”,我希望Combobox2
的值为“ Sauce”和“ Seeds”。
同样,如果用户为Combobox1选择了“蓝莓”,我希望Combobox2的值可以是“ Pie”和“ Cobbler”。
我不得不弄清楚如何根据第一个选择为第二个组合框设置值。我认为应该是这样的...
Private Sub Combobox1_Change()
If Combobox1= Apple Then
Combobox2.AddItem "Sauce"
Combobox2.AddItem "Seeds"
End If
If Combobox1= BlueberryThen
Combobox2.AddItem "Pie"
Combobox2.AddItem "Cobbler"
End If
End Sub
onChange事件基于我所做的测试而工作,但是无论我为第一个组合框选择什么,第二个组合框都是空的。
答案 0 :(得分:1)
组合框AddItem
方法将项目添加到组合的ValueList
中。但是我怀疑那是您真正想要的。如果用户在第一个组合中选择了“ Apple” ,然后返回并选择了“蓝莓” ,则我怀疑您希望第二个组合仅包含”蓝莓” 选项,而不是同时选择“苹果” 和“蓝莓” 选项。
通过直接更改ValueList
属性来避免这种情况...
Option Compare Database
Option Explicit
Private Sub Combobox1_AfterUpdate()
Dim strValueList As String
Select Case Me.Combobox1.Value
Case "Apple"
strValueList = "Sauce;Seeds"
Case "Blueberry"
strValueList = "Pie;Cobbler"
Case Else
MsgBox "What should happen when selection = '" & Me.Combobox1.Value & "'?"
End Select
Me.Combobox2.RowSource = strValueList
End Sub
注意:
AfterUpdate
事件,因为该事件的值已在该位置确定。Option Explicit
包括为Andre suggested。没有它就不要编写VBA代码。