本节内容:
创建和转换表
将所选区域转换成表
下面的代码基于当前所选区域创建表,并将其命名为myTable。
Sub ConvertRangeToTable()
Dim tableName As String
Dim tableRange As Range
tableName = "myTable"
Set tableRange = Selection.CurrentRegion
ActiveSheet.ListObjects.Add(SourceType:=xlSrcRange, _
Source:=tableRange, _
xlListObjectHasHeaders:=xlYes _
).Name = tableName
End Sub
将表转换回单元格区域
下面的代码将表转换回标准的单元格区域。
Sub ConvertTableToRange()
ActiveSheet.ListObjects("myTable").Unlist
End Sub
注意,将表转换为标准的单元格区域时,表的格式仍然保留,所以外观上看起来仍然像表。
调整表的单元格区域
下面的代码将表的区域调整为单元格A1:G50。
Sub ResizeTableRange()
ActiveSheet.ListObjects("myTable").Resize
Range("$A$1:$G$50")
End Sub
表样式
有许多表格格式选项,其中最常见的选项如下所述。
修改表样式
修改表样式为已有的预设样式。
Sub ChangeTableStyle()
ActiveSheet.ListObjects("myTable").TableStyle = "TableStyleLight15"
End Sub
想要知道要应用的样式,最好的方法是使用录制宏,其录制的代码将告诉你所选取的样式名称。
获取表样式名
使用下面的代码获取已经应用于表的样式名称。
Sub GetTableStyleName()
MsgBox ActiveSheet.ListObjects("myTable").TableStyle
End Sub
应用样式到第一列或最后一列
使用下面的代码能够将表的第一列和最后一列设置不同格式。
Sub ColumnStyles()
'应用特定样式给第一列
ActiveSheet.ListObjects("myTable").ShowTableStyleFirstColumn = True
'应用特定样式给最后一列
ActiveSheet.ListObjects("myTable").ShowTableStyleLastColumn = True
End Sub
添加或删除条纹
默认情况下,表具有间隔阴影行,但也可为此设置其他选项,例如删除行间隔阴影或添加列间隔阴影。
Sub ChangeStripes()
'应用列条纹
ActiveSheet.ListObjects("myTable").ShowTableStyleColumnStripes = True
'删除行条纹
ActiveSheet.ListObjects("myTable").ShowTableStyleRowStripes = False
End Sub
设置默认表样式
下面的代码设置默认的表样式。
Sub SetDefaultTableStyle()
'设置默认表样式
ActiveWorkbook.DefaultTableStyle = "TableStyleMedium2"
End Sub
未完待续……