将Userform中的10列多列列表框复制到数组中
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Userform中的10列多列列表框复制到数组中相关的知识,希望对你有一定的参考价值。
我尝试了几个论坛的几个解决方案,但似乎没有任何帮助。
我很确定我犯了一些愚蠢的错误,解决方案就在眼前,但我不能让它发挥作用。
我需要在一个包含12列的用户表单中填充列表框。
据我所知,对于超过10列,一个人不能再使用.List(i)属性,但必须使用数组来填充它。我的问题是每次我需要在列表框中插入一个新行时,我需要将列表框中的项目复制到数组中,重新安排数组以再生成一行,将新数据“插入”到这个新行中,最后,将数组复制到列表框中。
我的代码如下:
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
以上是关于将Userform中的10列多列列表框复制到数组中的主要内容,如果未能解决你的问题,请参考以下文章