如何将Excel用户窗体中ListView控件的表头设置为加粗样式?
如何将Excel用户窗体中ListView控件的表头设置为加粗样式?
嗨,刚接触VBA的话确实容易在控件格式设置上卡壳,不过给ListView表头加加粗样式其实很简单,咱们直接在你现有的代码里调整就行~
首先你要知道,ListView的表头(ColumnHeaders)本身就带有Font属性,咱们只要把这个属性里的Bold设为True就能实现加粗效果。下面给你两种可行的修改方式,你选一种用就行:
方式一:添加表头时直接设置加粗
在你循环添加表头的代码里,用With语句包裹添加操作,顺便设置加粗:
Private Sub UserForm_Activate() Dim ws As Worksheet Dim tbl As ListObject Dim lv As ListItem Dim i As Integer, n As Integer Set ws = ThisWorkbook.Worksheets("Sheet1") Set tbl = ws.ListObjects("MySales") With Me.lvRec .Gridlines = True .HoverSelection = True .View = lvwReport ' 必须设为报表视图才会显示表头,你已经加了这点很棒 End With 'Add column headers 同时设置加粗 For i = 1 To tbl.ListColumns.Count With Me.lvRec.ColumnHeaders.Add(, , tbl.ListColumns(i).Name) .Font.Bold = True ' 这里就是让表头变粗的关键代码 End With Next i ' 填充列表内容 With tbl.Range For i = 2 To .Rows.Count Set lv = Me.lvRec.ListItems.Add(, , tbl.Range.Cells(i, 1).Text) For n = 2 To .Columns.Count lv.ListSubItems.Add(, , tbl.Range.Cells(i, n).Text) Next n ' 你之前的代码这里没写完,记得补上 Next i End With End Sub
方式二:添加完所有表头后统一设置
如果你已经添加好了表头,也可以单独循环所有表头项来设置加粗,把这段代码放在添加表头的循环之后就行:
' 单独设置表头加粗 Dim colHeader As ColumnHeader For Each colHeader In Me.lvRec.ColumnHeaders colHeader.Font.Bold = True Next colHeader
需要注意的是,一定要确保ListView的View属性是lvwReport,不然表头根本不会显示出来,你代码里已经设置了这一点,非常到位~
备注:内容来源于stack exchange,提问作者Leko




