VBA列表框可以显示两个值吗?

时间:2014-03-04 13:53:24

标签: excel vba excel-vba listbox userform


我的用户表单中有一个组合框作为列表框。 Combobox设置为显示2列值,但是当选择其中一个列表框值时,仅显示第1列中的值。

是否可以显示两个值 - 就像列表框中的2列值一样?

由于我在初始化userform时遇到了问题。初始化时,它应显示特定数据,但如果它在大多数情况下只向我显示1列值,则它无用。

Private Sub UserForm_Initialize()

zmienna = Klient_kraj.Controls("klient").ListIndex

us.ColumnCount = 2
us.List = Range("us").Value

If Not Klient_kraj.Controls("klient").Value = "" Then
    nip.Value = Range("klienci").Cells(1 + zmienna, 1).Offset(0, 1).Value

    'problem starts here
    us.Value = Range("klienci").Cells(1 + zmienna, 1).Offset(0, 3).Value 
End If

End Sub

2 个答案:

答案 0 :(得分:1)

只需将组合框的列数设置为2.我真的不知道问题是什么。

编辑:

这是一种可行的解决方法。使组合框宽,以便在两列中显示必要的值。将组合框上的标签控件放在第二列的位置,但要确保标签控件的右侧不与组合框的下拉箭头重叠。将标签的背景样式属性设置为透明。将以下代码放在组合框的更改事件中:

Private Sub ComboBox1_Change()

    Me.Label1.Caption = Me.ComboBox1.List(Me.ComboBox1.ListIndex, 1)

End Sub

答案 1 :(得分:0)

另一种解决方法,但没有需要Label

Private Sub ComboBox1_Change()
    With Me.ComboBox1
        'The if is there to control the unwanted trigger of this code
        If .Value <> "" And InStr(.Value, vbTab) = 0 Then
            .Value = .Value & vbTab & .Column(1)
        End If
    End With
End Sub
相关问题