【发布时间】:2020-12-10 19:45:31
【问题描述】:
我想用在特定单元格中找到的下拉值填充一个组合框,比如 C10。
C10 使用 Excel 的数据验证功能将可输入单元格的值限制为下拉列表。我想使用这个列表来填充 vba userForm 中的组合框。
目前我的方法是使用:
Range("C10").Validation.Formula1
这里有 3 个可以返回的任意示例:
- “=制作”
- "=INDIRECT(C9 & "_MK")"
- “0;1;2;3;4;5;6;7;8;9;10”
我的方法是对此进行评估并尝试将其形成一个可用范围,该范围可用于设置我的组合框的 RowSource 属性。但是,我无法解释所有可以退回的可行案例。
当然有一种简单的方法可以实现我想要的,而无需为每种情况编写异常代码。
这样做的正确方法是什么?
【问题讨论】:
-
不清楚这3个例子...首先,为什么是“arbitrari”?他们不是你的潜在案例吗?那么,“Makes”应该是一个命名范围(作为一个列表,包含更多单元格)吗?
C9 &_MK应该表示什么?通过“C9”单元格值和“_MK”之间的连接获得的另一个命名范围?应该列出最后一个案例吗?你真的把它当作“;”分开?通常,VBA 只使用逗号之类的分隔符,与本地化无关... -
它是讨论中的ComboBox 表单类型吗?如果是,是 Form 还是 ActiveX 类型?
-
你必须在 proc 中单独处理它。这并不难:)
-
你没有回答我的澄清问题...请测试我的答案代码,处理 ActiveX 类型的组合和(理论上)任何类型的 DropDown
Validation.Formula1...