![限制 Excel 中多选列表框的选择数量](https://linux22.com/image/1375968/%E9%99%90%E5%88%B6%20Excel%20%E4%B8%AD%E5%A4%9A%E9%80%89%E5%88%97%E8%A1%A8%E6%A1%86%E7%9A%84%E9%80%89%E6%8B%A9%E6%95%B0%E9%87%8F.png)
我已插入表单控件;具有多选功能的 ListBox。但我想将选择数量限制为 3。
如果用户尝试选择三个以上,则应取消选择用户尝试选择的那个。还应出现一个 MsgBox,通知用户最大选择数为 3。
我试图找到这个问题的答案,并尝试了在线找到的代码片段,但没有成功。
我已经尝试过这个代码:
Private Sub ListBox2_Change()
Dim iInd%
Dim i As Integer, Cnt As Integer
Cnt = 0
iInd = ListBox2.ListIndex
For i = 0 To ListBox2.ListCount - 1
If ListBox2.Selected(i) = True Then
Cnt = Cnt + 1
End If
Next i
If Cnt > 2 Then
ListBox2.Selected(iInd) = False
MsgBox "Only 2 types can be selected"
End If
End Sub
但是 VBA 返回“运行时错误 424:需要对象”并突出显示第 5 行。
我是 VBA 的初学者,没有太多的使用经验。
为什么上述代码不起作用?我该如何解决我的问题?
答案1
您需要使用ActiveX 列表框而不是表单元素。ActiveX 控件更适合这种用途,因为它们是为在 VBA 脚本中使用而设计的。
当我将您的代码分配给改变事件并改变引用的位ListBox2
以使用我的列表框的名称。