Excel表格VBA组合框重置

时间:2015-09-08 18:54:42

标签: excel forms vba excel-vba combobox

这应该很容易,但我似乎找不到任何可以解决的问题。我在Excel中使用VBA表单。 Excel工作表有四列填充数据,表单显示这些字段。

然后,用户在组合框中选择一个值,使用命令按钮提交响应,并将组合框中的值写入Excel工作表。

然后,用户使用命令按钮在电子表格中向下前进一行,并从新行加载四个值。这一切都很有效。

我试图解决的问题是组合框保持选择为先前选择中的值。我想重置组合框,因此没有选择任何内容,用户必须再次为下一行做出选择。

下面是我用来加载组合框并为用户选择的内容设置变量的代码。在用户提交表单后,似乎无法将组合框恢复到默认状态。

Private Sub cbDesAccWanted_Change()
    Select Case cbDesAccWanted.Text
        Case "Yes"
            desacc = "Yes"
        Case "No"
            desacc = "No"
    End Select
    cbDesAccWanted.Text = desacc
End Sub

Private Sub cbDesAccWanted_DropButtonClick()
    cbDesAccWanted.List = Array("Yes", "No")
End Sub

2 个答案:

答案 0 :(得分:2)

有两种方法可以重置组合框。请选择:

1

cbDesAccWanted.Value = Null

2

cbDesAccWanted.ListIndex = -1

答案 1 :(得分:0)

cbDesAccWanted.Text = desacc

完全没必要。

使用cbDesAccWanted_DropButtonClick不是填充值列表的正确位置。首次向用户显示表单时,应设置此列表。 (unelss显示chnages的值,在这种情况下,当行发生变化时更改它,而不是当用户点击它时)

因此,当用户单击向下箭头移动到下一个记录时,请包含以下行

Me.cbDesAccWanted.text = Me.cbDesAccWanted.List(1) 

注意(1)访问列表中的第2项,即“否”。

因此,将其重置为默认值No。

确定。