【发布时间】:2019-06-12 17:46:07
【问题描述】:
如何使用 VBA 清除 Excel ActiveX ComboBox 列表。我希望这段代码可以工作:
Sheet1.OLEObjects(1).Clear
但它提高了
运行时错误对象不支持此属性或方法。
我很困惑,因为这行得通:
Sheet1.OLEObjects(1).Name
返回名称TempCombo。
当我尝试这个时仍然失败:
Sheet1.TempCombo.Clear
返回错误:
运行时错误未指定的错误。
我还应该检查什么?
【问题讨论】:
-
我想一定是
Sheet1.OLEObjects(1).Object.Clear。但Sheet1.TempCombo.Clear也适用于我而不会引发错误。Sheet1.TempCombo.List = Array()是从列表中删除所有项目的另一种方法。 • 我无法重现您的问题。一定有其他原因导致此错误。 -
@Pᴇʜ 你是对的! .Clear 应该确实有效。您是否检查过您的工作表/组合框 -name 是否正确?
-
@J.schmidt 工作表名称必须正确,否则
Sheet1.OLEObjects(1).Name不会给出正确的名称。因此,ComboBox 名称也是证明。 -
@Pᴇʜ 我发现
Sheet1.TempCombo.Clear将失败,除非属性.ListFillRange = ""。这是其他用户体验过的stackoverflow.com/a/51425477/1903793 -
@PrzemyslawRemin 奇怪它对我有用。但我在测试中从未使用过
.ListFillRange。我添加了带有TempCombo.AddItem "test"的项目。所以感谢您的跟进。
标签: excel vba combobox activex