2

如何在办公室中添加组合按钮/下拉菜单(见下文)。最好有代码。

替代文字

更新:如果有帮助,则不需要代码。

4

1 回答 1

1

您可以根据以下 ActiveX 控件执行此操作:

  • Microsoft ImageList 控件,版本 6
  • Microsoft ImageComboBox 控件,版本 6

手动地,您从 [Control Toolbox] 菜单栏中选择“更多控件...”,然后双击提到的控件以将它们放在您的工作表上。将 ComboBox 定位在您想要的位置,并忽略 ImageList 的位置,它仅在设计模式下可见。现在你有两个名为的嵌入式控件

  • 图像列表1
  • 图像组合1

这两个组件的插入还会创建对 ...\system32\MSCOMCTL32.OCX 的引用。

那么你

  1. 手动将图标(GIF、BMP 等)添加到图像列表
  2. 手动将 Combo 的 ImageList 属性设置为“ImageList1”
  3. 手动将 Combo 的 AutoLoad 属性设置为 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 有问题,网上有很多帖子。

在这里进一步阅读

于 2011-01-13T22:24:38.603 回答