我希望用多列ListBox填充UserForm以供选择。 ListBox列填充了存储在自定义类模块对象(工作请求和组件)中的数据。我尽可能清楚地表达了我的逻辑,寻求帮助以正确的方式实现这一点。
我收到错误
运行时错误'381':无法设置List属性。无效 属性数组索引。
,调试器突出显示行UserForm.Show
。
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 5
ListBox1.ColumnWidth = “100;100;100;100;100;”
Dim i as Integer
With ListBox1
For i = 0 to (wrArraySize - 1)
.AddItem
.List(i, 0) = WorkRequests(i + 1).WorkRequestNumber
.List(i, 1) = WorkRequests(i + 1).Product
.List(i, 2) = WorkRequests(i + 1).ComponentName
.List(i, 3) = WorkRequests(i + 1).NumberPiecesCompleted
.List(i, 4) = WorkRequests(i + 1).NumberPiecesTotal
Next
End With
End Sub
此外,如果您有额外的时间,我需要知道如何引用所有选定的ListBox条目(即使用CTRL +单击以选择不相邻的项目)。谢谢。
答案 0 :(得分:0)
首先尝试以下简单代码。如果它工作正常,那么检查您的数组和其他引用
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 5
ListBox1.ColumnWidths = "20;20;20;20;20;"
Dim i As Integer
With ListBox1
For i = 0 To 5
.AddItem
.List(i, 0) = i
.List(i, 1) = i
.List(i, 2) = i
.List(i, 3) = i
.List(i, 4) = i
Next
End With
End Sub
答案 1 :(得分:0)
您的代码看起来是正确的。
对于调试:如果对象模块中出现错误,调试器很容易返回调用者模块,这可能是在线MATCH (from:Way { id: $idFrom }),
(to:Way { id: $idTo })
WITH from, to
CALL apoc.algo.dijkstraWithDefaultWeight(from, to, 'T1>|T2', 'distance', 1) YIELD path, weight
RETURN path, weight
停止的原因。您可以尝试设置类似UserForm.Show
的内容来覆盖模块中的默认错误处理程序(仅用于测试)以捕获错误。
用于管理多项选择:
On Error Resume Next
N.b。:删除所选项目需要反转循环,因为.ListCount正在改变,所以
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
' do something
End If
Next