如何在VBA7.1中创建MSComctlLib库的ColumnHeader类对象?
解决VBA ListView ColumnHeader创建的编译错误问题
- ColumnHeader类没有公开的构造函数,无法通过
New ColumnHeader直接创建实例,这就是你遇到"Invalid use of New Keyword"编译错误的原因。 - 正确的做法是通过ListView控件的
ColumnHeaders集合的Add方法,直接创建并添加ColumnHeader对象,无需手动实例化。
示例代码如下:
Option Explicit Private Sub UserForm_Initialize() ' 假设窗体上的ListView控件名为ListView1 With Me.ListView1 .View = lvwReport ' 必须设置为报表视图,列标题才会显示 ' 使用Add方法创建列标题,可选择接收返回的ColumnHeader对象 Dim clh As ColumnHeader Set clh = .ColumnHeaders.Add(Key:="Col1", Text:="第一列", Width:=100) ' 直接添加其他列标题 .ColumnHeaders.Add Key:="Col2", Text:="第二列", Width:=120 .ColumnHeaders.Add Text:="第三列", Width:=80 ' 省略Key参数 End With End Sub
Add方法参数说明(常用项):
Key(可选):字符串类型,列的唯一标识,后续可通过.ColumnHeaders("Col1")引用该列Text(必填):列标题显示的文本内容Width(可选):列的宽度,单位为缇(Twip)Alignment(可选):列内容的对齐方式,可选值为lvwLeft(左对齐)、lvwCenter(居中)、lvwRight(右对齐)
需要注意的是,MSComctlLib库中的这类控件对象(如ColumnHeader、ListItem等),都依赖于所属的集合对象来创建实例,不能独立生成。
内容的提问来源于stack exchange,提问作者Jorge Carvalho
相关产品推荐
相关产品推荐

