我尝试了来自多个论坛的几种解决方案,但似乎无济于事。
我很确定自己犯了一些愚蠢的错误,解决方案就在我眼前,但是我无法使它起作用。
我需要在用户表单中用12列填充列表框。
据我所知,对于10列以上的列,不能再使用 .List(i) 属性,而必须使用数组来填充它。我的问题是,每次需要在 listbox 中插入新行时,都需要将 listbox 中的项目复制到 array 中, redim array 再有一行,将新数据“插入”到这一新行中,最后将 array 复制到< em>列表框。
我的代码如下:
iLine = lbPlanPreview.ListCount
ReDim arr(iLine, lbPlanPreview.ColumnCount - 1)
If iLine > 0 Then
ReDim arr(0 To iLine - 1, lbPlanPreview.ColumnCount - 1)
'Array Lines
For iCur = 0 To iLine - 1
'Array Columns
For iCurAux = 0 To lbPlanPreview.ColumnCount - 1
arr(iCur, iCurAux) = Me.lbPlanPreview.ListIndex(iCur, iCurAux)
Next iCurAux
Next iCur
End If
它总是会给出类型不匹配错误:
有什么主意吗?谢谢。
答案 0 :(得分:1)
正确的ListBox.List
功能
认为,要恢复先前数据的最后一次数组分配应说明如下,并且可能仅限于lbPlanPreview.ListCount - 1
:
'Array Lines
For iCur = 0 To lbPlanPreview.ListCount - 1 ' possibly instead of: ILine - 1
'Array Columns
For iCurAux = 0 To lbPlanPreview.ColumnCount - 1
arr(iCur, iCurAux) = Me.lbPlanPreview.List(iCur, iCurAux)
Next iCurAux
Next iCur