我有一个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顶部的另一个组合框,有效地隐藏了它。我看到的控件是空的,而我想要的控件是重叠的。删除流氓控制箱解决了这些问题。道歉;这应该是我寻求的第一件事。
答案 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 - 提交您的文件以供审核;它应该更容易看!