题
如何在办公室中添加组合按钮/下拉(请参见下文)。最好使用代码。
更新: 如果有帮助,则不需要代码。
解决方案
您可以根据以下ActiveX控件来做到这一点:
- Microsoft Imagelist Control,版本6
- Microsoft ImageCombox Control,版本6
手动,您可以从[控制工具箱]菜单栏中选择“更多控件...”,然后双击上述控件以将其放在表格上。将Combobox定位在您想要的位置,而无视成像符的位置,仅在设计模式下才能看到。到现在为止,您有两个嵌入式节奏
- Imagelist1
- Imagecombo1
两个组件的插入还创建了... System32 mscomctl32.ocx的引用。
那么你
- 手动将图标(GIF,BMP等)添加到图像列表
- 手动将组合的成像属性设置为“ Imagelist1”
- 手动将组合的自动加载属性设置为true
到目前为止,您有一个具有错误但没有图标的组合。
然后您执行此代码
Sub FillCombo()
Dim SH As Worksheet, OO As OLEObjects, Idx As Integer
Set SH = ActiveSheet
Set OO = SH.OLEObjects
With OO("ImageCombo1").Object
.ComboItems.Clear
For Idx = 1 To OO("ImageList1").Object.ListImages.Count
.ComboItems.Add , , , Idx
Next Idx
End With
End Sub
我已经努力通过VBA创建对象,但是Imagecombo在创建时的行为似乎有所不同
Set SH = ActiveSheet
Set OO = SH.OLEObjects
OO.Add "MSComctlLib.ImageComboCtl.2"
' .... etc ....
组合是创建的,但是无论我做什么,都不会显示下拉箭头,但总的来说,调试器显示所有ListView元素均已整齐。许多同事似乎在Activex上有问题,网上有大量发布。
进一步阅读 这里
不隶属于 StackOverflow