添加近1000个组合框时出错

时间:2013-01-03 22:50:25

标签: excel vba combobox

我在数据采集领域工作,我们的客户需要一种方法,可以在多达256个输入通道上轻松设置多个设置。每个通道需要4个组合框才能表示所有可配置选项。 Here is a link to what it looks like.

使用以下方法在运行时在循环中创建这些组合框:

Set obj = Worksheets("Synergy Setup").OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=ttl_width + cell_width, Top:=ttl_height, Width:=cell_width2, Height:=cell_height)

一切正常,大约约243个频道(或接近1000个组合框),然后我收到以下错误:

“自动化错误,未找到元素,错误-2147319765”

使用MsgBoxes我已经确认它确实是前面提到的代码行导致了这个错误,它只发生在我接近1000个组合框时。 此外,发生此错误后,我的excel文件中的所有内容都被破坏,并且我不断收到错误“对象库无效或包含对无法找到的对象定义的引用”。(编辑:不相关)

重申一下,这只发生在大量的组合框中。有什么想法吗?

编辑:我想跟进,并说内置组合框的改变不仅解决了我的问题,而且加快了我的设计10倍,令我惊讶的是,大大简化了代码还有!谢谢!

1 个答案:

答案 0 :(得分:3)

也许您可以考虑在单元格下拉列表中使用 而不是组合框。
Like e.g. described here。我认为它也会表现出更好的表现。

编辑: 我用宏录制器捕获了一个代码(我只删除了 select ):

With Range("B:B").Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
    xlBetween, Formula1:="=values_colors"
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
End With

您仍然可以捕捉值的变化,看看Worksheet_Change Event