禁用列表框中的某些项目?

时间:2018-04-24 14:03:22

标签: excel vba excel-vba listbox

我有一个多选列表框,我需要禁止用户选择列表框中的某些项目。我已经尝试查看列表框启用,但这似乎只适用于整个列表框。有任何想法吗?这是我的列表框,我目前正在循环浏览项目,希望禁用该项目:

Dim lItem As Long
For lItem = 0 To Sheet1.ListBox1.ListCount - 1
    If Sheet1.ListBox1.Selected(lItem) Then
        Sheet1.ListBox1.Enabled(lItem) = False ' don't work?
    End If
Next

2 个答案:

答案 0 :(得分:1)

SELECT DATEDIFF(MONTH, '1905-06-04 00:00:00.000', '1905-05-31 00:00:00.000')

第1行:遍历列表框的所有索引

第2行:找到选中的项目

第3行:取消选择

第4行:删除所选的项目

答案 1 :(得分:0)

选项1:。这将保留用户的选择并有效地将其删除,同时保留所有项目的原始ListIndex。

Listbox1.List(MyListbox1.ListIndex) = " "

然后您可以使用代码检查值“”

选项2:Listbox1.List(Listbox1.ListIndex)从一列(可见)移动到另一列(宽度= 0)。如果您需要恢复原来的listindex顺序和值(将其设为有效选项),则该值也将保留。

选项3:为了获得灰色显示的错觉,只要没有滚动条,就可以在列表框中放置带有灰色背景的无边界标签。 .top值将需要使用列表框的.top加上X * ListIndex进行计算,以将其直接放在不可用的选项上。然后使标签的标题=列表框选择。 (我从未说过这很容易,只是有可能)