在我的UserForm
我有一个TextBox
,其中写下我的序列号,类似于421012。
在它下面我有一个ListBox,其中包含“工具,工作台,轮子”等选项
我正在做的事情:
在我输入我刚刚输入的Serial后,我点击了ListBox
中的一个选项,它应该在我的Serial后面添加一个值。
像这样:421012 +“选择工具”= 421012 15
“替补席”将得到421012 45
的结果到目前为止我的代码:
Private Sub UserForm_Initialize()
With ListBox1
.AddItem "Tools"
.AddItem "Bench"
.AddItem "Wheel"
End With
End Sub
不知怎的,我必须告诉VBA工具等于15或等于45等等。
答案 0 :(得分:1)
添加第二列,然后在进行值的连接时引用该列。 “42012”& me.listbox.column(1)应返回所选内容的值
with listbox
.columncount = 2
.additem
.list(1,0) = "Tools"
.list(1,1) = 15
.list(2,0) = "Bench"
.list(2,1) = 45
.list(3,0) = "Wheel"
.list(3,1) = 75
end with
答案 1 :(得分:1)
我使用对象比使用内部类型更频繁,但另一种选择是存储包含键入ListBox项目的查找的字典:
'Module level variable
Private SerialLookup As Scripting.Dictionary
Private Sub UserForm_Initialize()
Set SerialLookup = New Scripting.Dictionary
With SerialLookup
.Add "Tools", "15"
.Add "Bench", "45"
.Add "Wheel", "42"
End With
ListBox1.List = SerialLookup.Keys()
End Sub
然后,您可以使用它作为词典的索引来检索您需要的任何值,即:
TextBox1.Value = "421012" & SerialLookup.Item(ListBox1.Value)