在obj.addItem之后,VBA Excel comboBox下拉列表为空

时间:2012-03-08 16:05:28

标签: vba combobox

我有一个Excel2010 VBA用户表单,其中包含一个comboBox,用户应该可以从中选择当前打开的Excel工作簿。 USERFORM_Initialize子例程包含(除其他外):

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

我在此代码中设置了一个断点,并且能够逐步完成它;在目前的情况下,有四个开放的工作簿,并且“for each”被酌情重复四次。我可以看到wb.name包含我想要的值。

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

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

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

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

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

2 个答案:

答案 0 :(得分:1)

我找到了解决方法:我无意中复制了cbWorksheet顶部的另一个组合框,有效地隐藏了它。我看到的控件是空的,而我想要的控件是重叠的。删除流氓控制箱解决了这些问题。

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

答案 1 :(得分:0)

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

或者如果你想用范围数据填充它:

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

PS - 提交您的文件以供审核;它应该更容易看!