将select属性添加到ListboxVBA
我试图从工作表中填充一个列表框,并且想要预先确定哪些列表项已经有一个checkbox。 我已经find了方法来确定列表框中的哪些项目被检查,但没有其他的方式。 我有代码来运行我的列表,并插入我的范围内的每个项目,但无法find一种方法来分配选定的属性。 我的工作表将有每个项目添加1和0是否被选中。
工作表;
Item Include? TaskA 1 TaskB 0 TaskC 1
我想在1的所有内容旁边都有一个选定的标记,而不是包含0的所有内容。
这是我目前的尝试,我尝试一个循环(我),它在插入的字段旁边的表中查找:
For Each RngTask In ws.Range(Cells(2, 2), Cells(Count, 2)) FRM_StorageOptions.StorageList.AddItem RngTask.Value If ws.Cells(i, 2) = 1 Then FRM_StorageOptions.StorageList.Selected(i - 1) = True Else FRM_StorageOptions.StorageList.Selected(i - 1) = False End If i = i + 1 Next RngTask
然而,它不会允许我分配此属性,并返回“无法设置选定的属性。无效的属性值”。 添加到列表工作正常,没有我尝试添加选定的值。
任何帮助表示赞赏。
如果ws <> ActiveSheet
ws.Range(Cells(2, 2), Cells(Count, 2))
将会失败。 这是因为范围内的单元格必须被限定为与范围相同的工作表。
看来您想要添加列A中的值并检查列B以查看是否应该select它们。 您可以从列B添加并检查列B.
物品包括? TaskA 1 任务B 0 任务C 1
这是我最好的猜测,你要做什么。
With FRM_StorageOptions.StorageList For Each RngTask In ws.Range("A2", "A" & Count) .AddItem RngTask.Value .Selected(.ListCount - 1) = RngTask.Offset(0, 1) = 1 Next RngTask End With
Set
用于分配对象。 当你想分配一个非对象值,如布尔值或整数,你不使用Set
尝试改变:
Set FRM_StorageOptions.StorageList.Selected(i - 1) = True
至:
FRM_StorageOptions.StorageList.Selected(i - 1) = True
对于使用Set
的其他两行也是这样做的
即使列表框本身是一个对象,您分配的属性不是对象,因此不使用Set