Excel VBA清除ActiveX组合框列表
如何用VBA清除Excel 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
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=“”
之后不会引发错误,这很有趣!很高兴它能按预期工作。请花一分钟时间通过接受答案将您的问题标记为已解决。