将用户窗体中的 >10 列多列列表框复制到数组
Copy >10 columns multicolumn listbox in Userform to array
我尝试了几个论坛的几种解决方案,但似乎没有任何帮助。
我很确定我犯了一些愚蠢的错误,解决方案就在我眼前,但我无法让它工作。
我需要在包含 12 列的用户表单中填写 列表框。
据我所知,对于超过 10 列,不能再使用 .List(i) 属性,但是必须使用数组来填充它。我的问题是每次我需要在 listbox 中插入一个新行时,我需要将 listbox 中的项目复制到 array, redim array 多了一行, "insert" 把新数据放到新的这一行最后,将 array 复制到 listbox.
我的代码如下:
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
总是报类型不匹配错误:
有什么想法吗?谢谢
正确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
我尝试了几个论坛的几种解决方案,但似乎没有任何帮助。
我很确定我犯了一些愚蠢的错误,解决方案就在我眼前,但我无法让它工作。
我需要在包含 12 列的用户表单中填写 列表框。
据我所知,对于超过 10 列,不能再使用 .List(i) 属性,但是必须使用数组来填充它。我的问题是每次我需要在 listbox 中插入一个新行时,我需要将 listbox 中的项目复制到 array, redim array 多了一行, "insert" 把新数据放到新的这一行最后,将 array 复制到 listbox.
我的代码如下:
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
总是报类型不匹配错误:
有什么想法吗?谢谢
正确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