是否可以将UserForm自动调整中ComboBox的下拉菜单设置为文本大小,而不更改ComboBox的实际大小?
我已经找到了一些关于如何根据其中的值自动调整实际ComboBox的答案,但这会使得大小比实际需要的大(link here)。
以下图片有点代表我正在努力实现的目标:
有人知道这是否可能吗?
答案 0 :(得分:2)
有些列似乎有点宽,但总的来说,我认为代码在配置下拉列表方面做得非常好。
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
的示例数据