限制 Excel 中多选列表框的选择数量

限制 Excel 中多选列表框的选择数量

我已插入表单控件;具有多选功能的 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 脚本中使用而设计的。

活动X列表框

当我将您的代码分配给改变事件并改变引用的位ListBox2以使用我的列表框的名称。

相关内容