gpt4 book ai didi

vba - 如何使用 VBA 将标题添加到 Excel 用户窗体中的多列列表框

转载 作者:行者123 更新时间:2023-12-01 18:06:56 24 4
gpt4 key购买 nike

是否可以在不使用工作表范围作为源的情况下在多列列表框中设置标题?

以下内容使用分配给列表框的列表属性的变体数组,标题显示为空白。

Sub testMultiColumnLb()
ReDim arr(1 To 3, 1 To 2)

arr(1, 1) = "1"
arr(1, 2) = "One"
arr(2, 1) = "2"
arr(2, 2) = "Two"
arr(3, 1) = "3"
arr(3, 2) = "Three"


With ufTestUserForm.lbTest
.Clear
.ColumnCount = 2
.List = arr
End With

ufTestUserForm.Show 1
End Sub

最佳答案

这是我解决问题的方法:

此解决方案要求您添加第二个 ListBox 元素并将其放置在第一个列表框元素之上。

像这样:

Add an additional ListBox

然后调用函数 CreateListBoxHeader 以使对齐正确并添加标题项。

结果:

Call the function CreateListBoxHeader

代码:

  Public Sub CreateListBoxHeader(body As MSForms.ListBox, header As MSForms.ListBox, arrHeaders)
' make column count match
header.ColumnCount = body.ColumnCount
header.ColumnWidths = body.ColumnWidths

' add header elements
header.Clear
header.AddItem
Dim i As Integer
For i = 0 To UBound(arrHeaders)
header.List(0, i) = arrHeaders(i)
Next i

' make it pretty
body.ZOrder (1)
header.ZOrder (0)
header.SpecialEffect = fmSpecialEffectFlat
header.BackColor = RGB(200, 200, 200)
header.Height = 10

' align header to body (should be done last!)
header.Width = body.Width
header.Left = body.Left
header.Top = body.Top - (header.Height - 1)
End Sub

用法:

Private Sub UserForm_Activate()
Call CreateListBoxHeader(Me.listBox_Body, Me.listBox_Header, Array("Header 1", "Header 2"))
End Sub

关于vba - 如何使用 VBA 将标题添加到 Excel 用户窗体中的多列列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/657498/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com