2012-03-08 201 views
0

我有一个Excel2010 VBA用户窗体有一个组合框,用户应该从中选择当前打开的Excel工作簿。该USERFORM_Initialize子程序中包含(除其他事项外):VBA Excel组合框下拉列表obj.addItem后为空

cbWorkbook.Clear 
    cbWorkbook.Visible = True 
    For Each wb In Workbooks 
     cbWorkbook.AddItem wb.name 
    Next wb 

我已在这个代码中设置断点,并且我能够一步通过它;在目前的情况下,有四个开放的工作簿,并且适合每个“重复”四次。我可以看到,wb.name包含我想要的值。

但是,当窗体显示并单击Dropbox箭头时,“列表”为空。它看起来像有一个项目的空间,并且该项目是空白的。 (我相信这是一个空的下拉框的典型例子。)

选择组合框的属性有: Autosize = False; AutoTab = FALSE;启用= TRUE; DropButtonStyle = 1-fmDropButtonStyleArrow; 身高= 18; ListRows设为= 8; ListStyle = 0;锁定= FALSE; ShowOptionWhen = 2; SpecialEffect = 2;风格= 0;可见=真。在执行时,cbWorkbook.listCount = 4

这是在开发中,它确实看起来像昨天预期的那样工作,但现在似乎从来没有工作。任何想法,我可能会出错?

编辑:我找到了解决方案:我有无意中复制cbWorksheet顶部的另一个组合框,有效地隐藏它。我看到的控制器是空的,而我想要的控制器被覆盖。删除流氓控制箱解决了问题。

我的歉意;这应该是我所寻求的第一件事。

+0

你有错误处理吗? – SWa 2012-03-08 16:31:58

+0

此时此工作簿中的任何地方都不会出现错误处理。 – Dennis 2012-03-08 18:31:25

+0

你可以发布用户表单的完整代码吗? – SWa 2012-03-09 09:19:57

回答

1

我找到了解决方案:我在cbWorksheet的顶部无意中复制了另一个组合框,实际上隐藏了它。我看到的控制器是空的,而我想要的控制器被覆盖。删除流氓控制箱解决了问题。

我的歉意;这应该是我所寻求的第一件事。

0
With ComboBox1 
    .AddItem "This" 
    .AddItem "Is" 
    .AddItem "A" 
    .AddItem "Test" 
End With 

,或者如果你想与范围的数据来填充它:

ActiveSheet.Shapes("ComboBox1").Select 
Selection.ListFillRange = "k1:k10" 

PS - 提交您的文件进行审查;它应该更容易看!

+0

对不起......如何提交评论? – Dennis 2012-03-08 18:32:15