VBA中ComboBox的使用,急~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA中ComboBox的使用,急~~相关的知识,希望对你有一定的参考价值。

如何编程使在ComboBox的下拉列表中选中某个值(如一共有A.B.C.D,我选择C),对应的在同一个窗口中的Textbox显示相应的文字?

如你的combobox是combobox1,textbox是textbox1
代码如下
Private Sub ComboBox1_Change()
TextBox1.Value = ComboBox1.Value
End Sub

给combobox1赋值可以在初始时就赋值
Private Sub UserForm_Initialize()
ComboBox1.List = Array("A", "B", "C", "D")
End Sub
也可以在以下事件中赋值
Private Sub ComboBox1_Enter()
ComboBox1.List = Array("A", "B", "C", "D")
End Sub
参考技术A Private Sub Combo1_Click()
Text1 = Combo1.Text
End Sub

访问VBA:如何计算ComboBox的项目?

在我的ComboBox中,我已经选择了一些项目。

我想用VBA来算一下。我期待找到类似下面的字符串,但我得到Compile error: Argument not optional

Me.<ComboBox_name>.ItemData.Count

我也想过使用以下字符串,但它给了我0项目:

Me.<ComboBox_name>.ItemSelected.Count

enter image description here

答案

组合框通常用于选择或显示单个项目的选择,而列表框自然支持多个选择。

也就是说,如果您将多值*表字段链接到Combobox,您可以使用具有多个选择的Combobox。如果是这种情况,那么.ItemsSelected属性中唯一可用的值是当Combobox具有焦点并且下降时。

解决此问题的方法是将Combobox的.Value属性分配给数组。该数组将包含所选的值。您可以通过获取数组的上限并添加1来计算它们:

Dim comboitems() as Variant
Dim count as Long

comboitems = yourcombobox.Value

' array is 0-based so add one to get the count
count = UBound(comboitems) + 1

如果数组是多维的,则以这种方式读取值:

' array is 0-based so add one to get the count
count = UBound(comboitems, [dimension]) + 1

' where [dimension] is a 1-based index equivalent to the 'column' of the data

我希望有所帮助!

*注意:多值字段通常是不明智的,因为它们很难被Access支持,通常意味着你应该规范化表格,即将多值字段分成另一个表格。

另一答案

要计算选项,它是:

Me!<ComboBox_name>.ListCount

或者确切地说,如果您使用列标题:

Me!<ComboBox_name>.ListCount - Abs(Me!<ComboBox_name>.ColumnHeads)

以上是关于VBA中ComboBox的使用,急~~的主要内容,如果未能解决你的问题,请参考以下文章

来自 1 个 ComboBox 中不同表的 C# 值

在 MS Access 中使用 VBA 查看 Combobox 中的唯一值

访问VBA:如何计算ComboBox的项目?

VBA ListBox和ComboBox显示错误的字符

Excel里面的VBA,小小的剪切板问题,急!急!急!急急急!!!!

在 VBA 中显示 Me.ComBox.Value 和 Me.ComboBox.RowSource 属性的设置