Excel VBA用户窗体fmStyleDropDownList组合框赋值触发运行时错误380如何解决
VBA用户窗体组合框(fmStyleDropDownList模式)运行时错误380的解决方案
报错根因
当fmStyleDropDownList模式的组合框处于下拉展开、内部文本高亮的激活状态时,控件内部会暂时锁定Value属性的修改权限,此时直接赋值就会触发「无效属性值」的380错误。你之前直接使用ComboBox1.ListIndex = -1无效,也是因为操作时组合框还处于锁定状态,属性修改被拦截。
可行解决方案
方案1:赋值前转移焦点(推荐,改动最小)
只需要在修改组合框值之前,将焦点转移到其他控件(比如当前点击的命令按钮本身),即可解除组合框的锁定状态:
Private Sub CommandButton1_Click() ' 转移焦点解除组合框激活状态 CommandButton1.SetFocus ComboBox1.Value = "But then it errors sometimes if I change it here" End Sub
方案2:先收起下拉列表再赋值
如果不想变更当前焦点,可先手动关闭组合框的下拉状态,等待控件状态更新完成后再赋值:
Private Sub CommandButton1_Click() ' 手动收起下拉列表 ComboBox1.DropDown = False ' 等待控件状态更新完成 DoEvents ComboBox1.Value = "But then it errors sometimes if I change it here" End Sub
以上两种方案都不需要修改组合框的Style属性,可稳定规避该报错。
内容的提问来源于stack exchange,提问作者moreQthanA
相关产品推荐
相关产品推荐

