我正在尝试使用 VBA 在 MS Access 中设置多选列表框的值。我想要选择的值的索引保存在名为索引的表中。我想从表中检索它们,拆分它们(因为它们用分号分隔),然后设置列表框值。这是我的代码:
Private Sub SetListBox()
Dim Indexes As String
Dim IndexArray() As String
Indexes = rsIndex!EIndex //Gets the semi-colon delimited value from 'Index' table
IndexArray = Split(Indexes, ";") //Array of strings holding the different indexes
ReDim IndexArrayLong(UBound(IArray)) As Long //Creating an array of Long with the same length as IndexArray
For i = 0 To UBound(IndexArray)
IndexArrayLong(i) = CLng(IndexArray(i)) //Converts the Strings into Longs and places them in Long Array
Me.listBox.Selected(IArrayL(i)) = True //Sets listbox values
Next
End Sub
经过一些研究,我发现List Box值的索引是Long数据类型,这就是我将字符串转换为Longs的原因。 sub成功设置了列表框值,但在此之前,它给了我
运行时错误:' 13'类型不匹配
它突出显示了这行代码:
IndexArrayLong(i) = CLng(IndexArray(i))
我似乎无法弄清楚为什么我会收到错误或解决方法。任何建议表示赞赏。
答案 0 :(得分:2)
您的一个或多个字符串不仅仅是一个整数。你试过循环并打印它们吗?您的原始字符串是否以分隔符结尾?这可能会给你一个空字符串作为数组的最后一个值,它不能转换为数字。