我有一个带有多选选项的列表框。我使用addItem
函数填充它。
我在谷歌上找不到任何关于此的文章,但我需要区分列表框中显示的文字和真实值。
例如:
shown hiddenvalue
-------- -----------
monday A1
tuesday A2
wednesday C7
等
有可能吗?如何访问这些值?
答案 0 :(得分:7)
对于您想要的VBA列表框:
ColumnCount = 2
)。ColumnWidths = ";0"
。BoundColumn = 2
),将第一列声明为文本(TextColumn = 1
)。有一个添加值的过程:
Private Sub AddWithID(Text As String, ID As String)
ListBox1.AddItem Text
ListBox1.List(ListBox1.ListCount - 1, 1) = ID
End Sub
现在,对于单选列表框,您可以使用.Value
或.Text
查找所选的值/文字。
对于多选列表框,您可以使用.List(i, 0)
表示文本,.List(i, 1)
表示值,其中i
表示行的索引。
答案 1 :(得分:3)
另一种方式......使用收藏。
Private HiddenValue As New Collection
Private Sub CommandButton1_Click()
AddItems "monday", "A1"
AddItems "tuesday", "A2"
AddItems "wednesday", "C7"
End Sub
Private Sub CommandButton2_Click()
MsgBox "Shown Value :" & ListBox1.List(ListBox1.ListIndex) & vbNewLine & _
"Hidden Value " & HiddenValue(ListBox1.ListIndex + 1)
End Sub
Private Sub AddItems(Text As String, ID As String)
ListBox1.AddItem Text
HiddenValue.Add ID
End Sub
快照