You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA中无法为ComboBox指定RowSource属性的问题求助

解决Excel VBA依赖型ComboBox报错438的问题

错误原因很明确:你用的是表单控件类型的ComboBox,而RowSource是ActiveX控件ComboBox独有的属性,表单控件没有这个属性,所以会提示“对象不支持该属性或方法”,输入代码时也不会出现这个属性的提示。

两种解决方案:

方案1:继续使用表单控件

把代码里的RowSource替换成表单控件对应的ListFillRange属性即可,修改后的代码如下:

Option Explicit

Private Sub conduitTypeBox_Change()

Select Case conduitTypeBox.Value
    Case Is = "IMC"
        conduitSizeBox.ListFillRange = "imcSize"
    Case Is = "LFMC"
        conduitSizeBox.ListFillRange = "lfmcSize"
    Case Is = "RMC"
        conduitSizeBox.ListFillRange = "rmcSize"
    Case Is = "PVC (Schedule 80)"
        conduitSizeBox.ListFillRange = "pvc80Size"
    Case Is = "PVC (Schedule 40)"
        conduitSizeBox.ListFillRange = "pvc40Size"
    Case Is = "PVC (Type A)"
        conduitSizeBox.ListFillRange = "pvcaSize"
    Case Is = "PVC (Type EB)"
        conduitSizeBox.ListFillRange = "pvcebSize"
End Select

End Sub

方案2:切换为ActiveX控件

  1. 删除当前的表单ComboBox,点击「开发工具」→「插入」→ 选择「ActiveX控件」里的ComboBox(带齿轮图标的那个),重新添加两个ComboBox并命名为conduitTypeBox和conduitSizeBox
  2. 此时你的原代码不需要修改,RowSource属性会正常生效,输入代码时也会出现属性提示

快速区分两种ComboBox的方法

右键点击ComboBox:

  • 若菜单里有「查看代码」选项,说明是ActiveX控件
  • 若菜单里主要选项是「指定宏」,说明是表单控件

内容的提问来源于stack exchange,提问作者Nick Lybarger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:42:42