Excel表单Combobox绑定数组子集触发运行时错误381求助
问题原因
错误381的核心原因是:InstManf(3)提取的是数组中的单个字符串元素,而Combobox的List属性要求接收的是一维数组,直接把单个字符串赋值给List会导致类型不匹配,触发无效属性数组索引错误。
解决方法
提供三种可行的实现方式,按需选择:
方法1:创建包含单个元素的新数组赋值
直接用Array()函数把单个元素包装成一维数组,再赋值给List:
InstManfSubset = Array(InstManf(3)) CbxInstManf.List = InstManfSubset
方法2:使用AddItem方法直接添加单个元素
如果只是添加单个选项,用AddItem比赋值数组更简洁,不需要额外变量:
' 替换原来的两行代码 CbxInstManf.AddItem InstManf(3)
方法3:显式声明单元素数组并赋值
如果需要保留数组变量的形式,可以显式声明一个只有一个元素的数组:
Dim InstManfSubset(0) As String InstManfSubset(0) = InstManf(3) CbxInstManf.List = InstManfSubset
验证说明
以上三种方式都能正确将InstManf数组的第4个元素(索引3,值为"Fugro")添加到CbxInstManf下拉列表中,不会触发运行时错误381。
内容的提问来源于stack exchange,提问作者EsteeCodes
相关产品推荐
相关产品推荐

