【发布时间】:2012-01-23 15:01:26
【问题描述】:
我已经研究过但无法找到是否可以在 ActiveX ComboBox 中存储字符串而不是 Range。
我的工作簿具有如此多的依赖项,以至于每当用户输入任何类型的公式时,它都会重新计算 ComboBox(s) 等。我已将值粘贴在基于公式的基础范围中,这有助于并关闭计算无济于事。任何指导表示赞赏。
更新 - 组合框已绑定,这是设置范围的示例。
ThisWorkbook.Worksheets("Securities").OLEObjects("cboList").ListFillRange = "Securities!" & Range("mySecurities").Address
【问题讨论】:
-
我认为混淆(就 OP 和回答者而言)与它们是 Excel 中两种基本类型的“组合框”有关。仅供参考,工作表本身有一个“活动 X”组合框(作为 OLEobject 嵌入)和基于 MSForms 的 activeX 组合框,可以完全从 VBA 访问。对于 OLEObject ,我认为这需要绑定到一个范围或一组字符串值(但不能同时绑定两者)。对于 MSForms 组合框,请参见下面 Rachel 概述的方法。
-
我没有意识到 activex 有两个“组合框”,但这澄清了我的困惑。老实说,我可能会使用下面的版本,但我的老板希望它看起来像这样,所以我别无选择。我从你的评论中得知这是不可能的。感谢您的意见。
-
没问题。是的,我认为这两者是为不同的目的而设计的。 Forms 种类通常是模态的,因此除非您使用 refedit 控件,否则您甚至无法在运行时选择 Range(假设您想更改它)。