选择后如何在ComboBox中显示第二列?

时间:2017-01-10 17:12:25

标签: vba excel-vba excel

我可以单击我的ComboBox并查看Column1和Column2的值,但是在我单击ComboBox后,将始终显示Column1中的值,并且我希望显示Column2的值。

enter image description here

enter image description here

我试过了:

        With ComboBox2
            .Value = "None"
            .ColumnHeads = True
            .ColumnCount = 2
            .ColumnWidths = "50;100"
            .RowSource = "SetupQuestions!A42:B48"
            .BoundColumn = 2
        End With

没有像我想的那样设定价值。

我试过了:

Private Sub ComboBox2_AfterUpdate()
    ComboBox2.Value = ComboBox2.Column(2)
End Sub

没有像我想的那样设定价值。

如何在选择后强制ComboBox在Column2中显示值?

5 个答案:

答案 0 :(得分:1)

ComboBox的DropList可以显示多列,但是选择一行后,它只能显示一列为Text。要显示第二列,请使用属性TexColumn。

Me.ComboBox1.TextColumn = 2

答案 1 :(得分:0)

哎呀!它不是.Value

它的.Text

Private Sub ComboBox2_AfterUpdate()
    Me.ComboBox2.text = Me.ComboBox2.Column(1)
End Sub

答案 2 :(得分:0)

如果您只关心外观,则有解决方法

Private Sub ComboBox2_Click()

With ComboBox2
    .Text = .List(.ListIndex, 0) & " | " & .List(.ListIndex, 1)
End With

End Sub

答案 3 :(得分:0)

我刚来这里是因为我也想解决这个问题。但其他人的回应帮助我找到了答案。 如果你还没有得到它,这是我的解决方案。

Private Sub ComboBox_AfterUpdate()

  ComboboxList.Text = ComboboxList.Column(0) & " " & ComboboxList.Column(1)

End Sub

答案 4 :(得分:0)

使用组合框右侧的文本字段。将组合框中的列数设置为2。 将列表宽度设置为组合和文本大小的总和(a + b) 设置列宽度为组合的大小和文本的大小(a; b) 由于columns属性是基于0的列数组,因此将文本字段的源设置为“ = [MyCombo] .Columns(1)”以显示第二个字段。 下拉菜单时,第一列应恰好在组合框下方,第二列应恰好在文本框下方。 当您更新组合时,文本框应相应地更新其值。 另外,您可能需要将文本框属性设置为true并启用为false。