这是有问题的代码......
Sub DoStuff()
Dim objSheet As Worksheet
Dim objStr As String
Set objSheet = ActiveSheet
objStr = objSheet.ListObjects(1).Name
If objStr = "TaskTable" Then
With objSheet.ListObjects(1) ' Format for Tasks
.ListColumns.Add Position:=3
.HeaderRowRange(3) = "Status Image"
'Resize here
问题是我无法弄清楚属性/方法/其他设置列表对象中特定列的列宽。
答案 0 :(得分:2)
找到您正在寻找的属性的一个好方法是在代码中设置断点(左键单击IDE中最左侧的灰色列),并在调试期间使用本地窗口。
例如,如果在行.HeaderRowRange(3) = "Status Image"
处设置断点,并且您运行代码,则代码将在该行停止。打开本地窗口(查看,然后是本地)。您必须深入了解一下,但在objSheet下,您将看到所有正在使用的属性,包括ListObjects。深入研究ListObjects,Item1(代码中的TaskTable),ListColumns,Item3(代码中添加的列),Range和ColumnWidth,您将看到可以使用的属性(作为Variant或Double)。
要在代码中插入,请添加以下内容代替'Resize here
评论:
.ListColumns(3).Range.ColumnWidth = x
其中" x"是列的大小。有关ColumnWidth属性的详细信息,请参阅here。
答案 1 :(得分:0)
使用AutoFit属性。
With ActiveSheet.ListObjects("Table Name")
.ListColumns.Add(3).Name = "Status Image"
.ListColumns("Status Image").Range.Columns.AutoFit
End With