Scripting.Dictionary键列表框VBA Excel
问题描述:
我一直在Excel中使用VBA,最近开始使用Scripting.Dictionary对象。直到今天,我还没遇到任何重大问题。Scripting.Dictionary键列表框VBA Excel
基本上我试图填充一个字典的键值列表框,然后再向列表框添加一个值。这会导致该值不仅被添加到列表框中,而且还被作为关键字添加到字典中。我试图将dict.keys()数组中的值复制到一个完全独立的数组中,但仍然存在相同的问题。我认为这是一个byref问题,但尚未找出解决方案。如果任何人有任何想法,真棒。
Private Sub Setup_settingLst()
'Set Settings listbox items
'On Error GoTo ErrorExit
Dim list_ary() As Variant
Dim tmp As Variant
Dim i As Integer
settingLst.Clear
settingLst.Value = "-Select Setting-"
i = 0
tmp = tmp_dict.Keys()
If tmp_dict.Count > 1 Then
ReDim list_ary(0 To tmp_dict.Count)
For i = 0 To UBound(tmp)
list_ary(i) = tmp(i)
Next i
list_ary(tmp_dict.Count) = "Back"
Else
ReDim list_ary(0 To tmp_dict.Count - 1)
For i = 0 To UBound(tmp)
list_ary(i) = tmp(i)
Next i
End If
settingLst.List = list_ary
Erase list_ary
Exit Sub
ErrorExit:
End Sub
答
这似乎是工作
Private Sub UserForm_Click()
Dim dcValues As Scripting.Dictionary
Me.ListBox1.Clear
Set dcValues = FillDictionary
Me.ListBox1.List = dcValues.Keys
Me.ListBox1.AddItem "Back"
End Sub
试图重新您的问题,但代码似乎对我的工作确定。请发布其余的代码,包括如何声明和填充'tmp_Dict',以及如何调用'Setup_settingLst',因为这可能会影响问题。 – 2013-05-13 05:54:03