组合框可以在其文本框部分上显示多于一列吗?

时间:2011-07-29 00:45:08

标签: vba combobox

我的组合框中有一个两列列表,当我使用下拉列表选择其中一个项目时,它存储(我在组合框的文本框部分中看到的)只有我选择的值(是它的根据boundcolumn在右侧或左侧列中的那个

我的问题是:有没有办法在组合框的文本框部分存储(或呈现 - 这是我的目标),选择了一行的两列?

例如:[column1] Daniel [column2] Smith。在我想要的文本框中:丹尼尔史密斯(而不仅仅是丹尼尔,或者他们自己的史密斯)

2 个答案:

答案 0 :(得分:0)

您可以设置组合框文本字段以使用多列中的数据,但您可能需要编写一些代码来执行此操作。

尝试http://www.contextures.com/Excel-VBA-ComboBox-Lists.html

答案 1 :(得分:0)

您所描述的理论上是可行的,但有限制。

即使你没有要求,这是我的想法

与描述here类似,您可以在不更改其text的情况下更改ComboBox的value。这允许您“存储”基础值,同时在一个列中显示两个列。

聆听SelectedIndexChanged Event并更改text属性,如下所示:

Sub ComboBox1_SelectedIndexChanged()
    ComboBox1.Text = ComboBox1.Column(0) & "-" & ComboBox1.Column(1)
End Sub

(这只是一个基本的例子。)现在无法测试它,但在.Net中你可以使用CTypesender参数显式转换为ComboBox变量以这种方式访问​​它。

Boundcolumn属性无法更改为多个值。您可以尝试在文本字段中使用VbTab作为分隔符,但我不确定它将如何显示。

修改

不要忘记默认值。我认为您的文本字段应该在用户第一次点击列表之前显示列。