已设置RowSource属性后,如何重置以使用AddItem方法操作UserForm组合框
解决ComboBox设置RowSource后无法使用AddItem的问题
当然可以重置RowSource属性来解决这个问题!你遇到的“访问被拒绝”错误,本质原因是Excel的ComboBox不能同时处于两种数据源模式:当你通过RowSource绑定了工作表范围后,控件的选项会完全由这个范围自动管理,此时手动调用AddItem会被系统阻止,因为这两种方式是互斥的。
具体解决步骤
只需要在调用AddItem之前,把RowSource设置为空字符串,解除和工作表范围的绑定,就能切换到手动添加项的模式:
' 先清空RowSource,解除数据源绑定 UF.Combo.RowSource = "" ' 现在可以安全使用AddItem添加新项了 UF.Combo.AddItem Worksheets(WorksheetName).Cells(2, 2).Value
额外注意事项
- 清空
RowSource后,ComboBox里原有的选项会自动被清除,不需要额外调用UF.Combo.Clear(不过如果调用了也不会有问题) - 后续如果需要再次通过
RowSource绑定数据源,直接重新赋值即可,此时控件会自动切换回绑定模式,AddItem会再次失效——所以要注意根据你的业务逻辑切换对应的数据源模式
内容的提问来源于stack exchange,提问作者budekatude
相关产品推荐
相关产品推荐

