【发布时间】:2016-12-15 17:59:59
【问题描述】:
我是 VBA 和 StackOverflow 的新手,所以对于任何错误,我提前道歉。
我有一个用户窗体,最终将有 16 个组合框。所有 16 个 ComboBox 都将具有相同的 5 个调查响应选项)。
我的第一次尝试是像这样填充它们,为每个 ComboBox 重复 16 次:
Private Sub cboAE1A_DropButtonClick()
'Populate control.
Me.cboAE1A.AddItem "Strongly disagree"
Me.cboAE1A.AddItem "Disagree"
Me.cboAE1A.AddItem "Neither agree nor disagree"
Me.cboAE1A.AddItem "Agree"
Me.cboAE1A.AddItem "Strongly agree"
End Sub
但是,当我测试表单时,多次选择 ComboBox 会重复响应选项。所以,如果我点击它,一切都很好。第二次,我看到 3 组响应选项,依此类推。这是为什么?我能做些什么来预防它?
其次,为了避免重复上述代码 16 次,我找到了这个 link 并尝试根据我的目的对其进行调整:
Private Sub ufrmGenderTraining_Initialize()
'Populate AE1A combo box.
Dim rngRespuestas As Range
Dim ws As Worksheet
Set ws = Sheets("INPUTS")
For Each rngRespuestas In ws.Range("Respuestas")
Me.cboAE1A.AddItem rngRespuestas.Value
Next rngRespuestas
End Sub
但是 ComboBox 是空白的。任何想法如何解决它,以及如何用相同的列表有效地填充这 16 个组合框?如果您也可以像我 5 岁一样解释,那将不胜感激!
提前致谢。
【问题讨论】:
-
好吧,我明白了为什么我的问题的第二部分不起作用!请忽略这一点。仍然很好奇为什么在第一次尝试中,它会为 ComboBox 的每个选择重复响应。
-
cboAE1A_DropButtonClick() 每次单击放置按钮时都会运行,因此它将按照您的要求重新添加每个项目。每个
.AddItem行都应该移动到ufrmGenderTraining_Initialize()子,因为它只运行一次
标签: excel vba combobox userform named-ranges