Excel VBA调用Private Sub时ListBox场景出现类型不匹配错误
解决ActiveX ListBox调用Sub时的Type Mismatch错误
问题原因
VBA里存在两类ListBox对象:
- 表单控件的
ListBox(属于Excel对象模型) - ActiveX控件的
MSForms.ListBox(属于Forms对象模型)
你的update过程参数声明为lst As ListBox,但工作表中添加的是ActiveX ListBox,实际类型是MSForms.ListBox,类型不匹配导致传参时触发Type Mismatch错误。
解决方案
修改update过程的参数类型,明确指定为ActiveX ListBox的类型:
Private Sub update(lst As MSForms.ListBox) lst.ListIndex = -1 lst.ListFillRange = lst.ListFillRange End Sub
额外检查点
- 确认调用时的
Me.ListBox是你ActiveX控件的正确名称,比如控件实际命名为ListBox1,则调用时要写update Me.ListBox1,避免因控件名称错误引发问题。
内容的提问来源于stack exchange,提问作者Jojo197
相关产品推荐
相关产品推荐

