Excel VBA清除ActiveX组合框列表

Excel VBA清除ActiveX组合框列表,excel,vba,combobox,activex,Excel,Vba,Combobox,Activex,如何用VBA清除Excel ActiveX组合框列表。我希望这段代码能起作用: Sheet1.OLEObjects(1).Clear 但它提高了 运行时错误对象不支持此属性或方法 我感到困惑,因为这是可行的: Sheet1.OLEObjects(1).Name 返回名称TempCombo 当我尝试这一点时,我仍然失败: Sheet1.TempCombo.Clear 它返回错误: 运行时错误未指定的错误 我还应该检查什么?如果要清除ActiveX组合框列表,可以尝试以下操作 Sheet1.O

如何用VBA清除Excel ActiveX组合框列表。我希望这段代码能起作用:

Sheet1.OLEObjects(1).Clear
但它提高了

运行时错误对象不支持此属性或方法

我感到困惑,因为这是可行的:

Sheet1.OLEObjects(1).Name
返回名称
TempCombo

当我尝试这一点时,我仍然失败:

Sheet1.TempCombo.Clear
它返回错误:

运行时错误未指定的错误


我还应该检查什么?

如果要清除ActiveX组合框列表,可以尝试以下操作

Sheet1.OLEObjects(1).ListFillRange = ""
或者更确切地说,这

If TypeName(Sheet1.OLEObjects(1).Object) = "ComboBox" Then
    Sheet1.OLEObjects(1).ListFillRange = ""
End If

如果组合框有一个名称,您只需引用该名称即可。像

With mySheet
    .cbMyComboBox.ListFillRange = vbNullString
End with

我想一定是
Sheet1.OLEObjects(1.Object.Clear
。但是
Sheet1.TempCombo.Clear也适用于我,不会抛出错误
Sheet1.TempCombo.List=Array()
是从列表中删除所有项目的另一种方法。•我无法复制你的问题。一定是其他原因导致了这个错误。@Pᴇ你说得对。Clear实际上应该起作用。是否检查了工作表/组合框-名称是否正确?@J.schmidt工作表名称必须正确,否则
Sheet1.OLEObjects(1).name
不会给出正确的名称。因此,组合框名称也是证明。@Pᴇʜ我发现
Sheet1.TempCombo.Clear
将失败,除非属性
.ListFillRange=“”
。这是其他用户@PrzemyslawRemin所经历的,奇怪的是,它对我有用。但我在测试中从未使用过
.ListFillRange
。我添加了带有
TempCombo.AddItem“test”
的项。谢谢你的跟进,这很有效。然而令人惊讶的是,
Sheet1.OLEObjects(1.Object.Clear
Sheet1.OLEObjects(1.ListFillRange=“”
之后不会引发错误,这很有趣!很高兴它能按预期工作。请花一分钟时间通过接受答案将您的问题标记为已解决。