【问题标题】:Excel ComboBox - Autosize Dropdown OnlyExcel ComboBox - 仅自动调整下拉列表
【发布时间】:2016-09-22 04:49:37
【问题描述】:

是否可以只让用户窗体中的组合框的下拉菜单自动适应文本大小,而不改变组合框的实际大小?

我找到了一些关于如何根据其中的值自动调整实际 ComboBox 的答案,但这使得尺寸比我实际想要的要大 (link here)。

下图在一定程度上代表了我想要完成的工作:

有人知道这是否可能吗?

【问题讨论】:

  • 你是从一个范围内填充下拉列表吗?
  • 从 SQL 查询填充
  • 如果数据在工作表上 Mat's Mug 会在此处向您展示如何操作:Populating a ComboBox from a Range

标签: excel vba


【解决方案1】:

有些列看起来有点宽,但总的来说,我认为代码在配置下拉菜单方面做得很好。

Private Sub ConfigureComboBox()
    Dim arrData, arrWidths
    Dim x As Long, y As Long, ListWidth As Double
    arrData = ComboBox1.List
    ReDim arrWidths(UBound(arrData, 2))

    For x = 0 To UBound(arrData, 1)
        For y = 0 To UBound(arrData, 2)

            If Len(arrData(x, y)) > arrWidths(y) Then arrWidths(y) = Len(arrData(x, y))

        Next
    Next

    For y = 0 To UBound(arrWidths)

        arrWidths(y) = arrWidths(y) * ComboBox1.Font.Size
        ListWidth = ListWidth + arrWidths(y)
    Next

    With ComboBox1
        .ColumnCount = UBound(arrWidths) + 1
        .ColumnWidths = Join(arrWidths, ";")
        .ListWidth = ListWidth
    End With

End Sub

来自Excel Sample Data的样本数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-04
    • 2015-10-27
    • 2021-09-24
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多